diff --git a/user_guide/changelog.html b/user_guide/changelog.html
index 8469a59..76f9e5d 100644
--- a/user_guide/changelog.html
+++ b/user_guide/changelog.html
@@ -65,14 +65,14 @@
 <ul>
 	<li>Security
 		<ul>
-			<li>An improvement was made to the MySQL and MySQLi drivers to prevent exposing a potential vector for SQL injection on sites using multi-byte character sets in the database client connection. <p>An incompatibility in PHP versions &lt; 5.2.3 and MySQL &lt; 5.0.7 with <em>mysql_set_charset()</em> creates a situation where using multi-byte character sets on these environments may potentially expose a SQL injection attack vector. Latin-1, UTF-8, and other "low ASCII" character sets are unaffected on all environments.</p> <p class="critical">If you are running or considering running a multi-byte character set for your database connection, please pay close attention to the server environment you are deploying on to ensure you are not vulnerable.</p></li>
+			<li>An improvement was made to the MySQL and MySQLi drivers to prevent exposing a potential vector for SQL injection on sites using multi-byte character sets in the database client connection.  <p>An incompatibility in PHP versions &lt; 5.2.3 and MySQL &lt; 5.0.7 with <em>mysql_set_charset()</em> creates a situation where using multi-byte  character sets on these environments may potentially expose a SQL injection attack vector.  Latin-1, UTF-8, and other "low ASCII" character sets are unaffected on all environments.</p>  <p class="critical">If you are running or considering running a multi-byte character set for your database connection, please pay close attention to the server environment you are deploying on to ensure you are not vulnerable.</p></li>
 		</ul>
 	<li>General Changes
 		<ul>
 			<li>Fixed a bug where there was a misspelling within a code comment in the index.php file.</li>
-			<li>Added Session Class userdata to the output profiler. Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.</li>
+			<li>Added Session Class userdata to the output profiler.  Additionally, added a show/hide toggle on HTTP Headers, Session Data and Config Variables.</li>
 			<li>Removed internal usage of the <samp>EXT</samp> constant.</li>
-			<li>Visual updates to the welcome_message view file and default error templates. Thanks to <a href="https://bitbucket.org/danijelb">danijelb</a> for the pull request.</li>
+			<li>Visual updates to the welcome_message view file and default error templates.  Thanks to <a href="https://bitbucket.org/danijelb">danijelb</a> for the pull request.</li>
 		</ul>
 	</li>
 	<li>Helpers
@@ -149,7 +149,7 @@
 			<li>Added <kbd>$config['cookie_secure']</kbd> to the config file to allow requiring a secure (HTTPS) in order to set cookies.</li>
 			<li class="reactor">Added the constant <kbd>CI_CORE</kbd> to help differentiate between Core: TRUE and Reactor: FALSE.</li>
 			<li class="reactor">Added an <kbd>ENVIRONMENT</kbd> constant in index.php, which affects PHP error reporting settings, and optionally,
-        which configuration files are loaded (see below). Read more on the <a href="general/environments.html">Handling Environments</a> page.</li>
+                which configuration files are loaded (see below). Read more on the <a href="general/environments.html">Handling Environments</a> page.</li>
 			<li class="reactor">Added support for <a href="libraries/config.html#environments">environment-specific</a> configuration files.</li>
 		</ul>
 	</li>
@@ -186,15 +186,15 @@
 		<ul>
 			<li>PHP 4 support is removed. CodeIgniter now requires PHP 5.1.6.</li>
 			<li>Scaffolding, having been deprecated for a number of versions, has been removed.</li>
-			<li>Plugins have been removed, in favor of Helpers. The CAPTCHA plugin has been converted to a Helper and <a href="./helpers/captcha_helper.html">documented</a>. The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.</li>
+			<li>Plugins have been removed, in favor of Helpers.  The CAPTCHA plugin has been converted to a Helper and <a href="./helpers/captcha_helper.html">documented</a>.  The JavaScript calendar plugin was removed due to the ready availability of great JavaScript calendars, particularly with jQuery.</li>
 			<li>Added new special Library type: <a href="./general/drivers.html">Drivers</a>.</li>
-			<li class="reactor">Added full query-string support. See the config file for details.</li>
+			<li class="reactor">Added full query-string support.  See the config file for details.</li>
 			<li>Moved the application folder outside of the system folder.</li>
 			<li>Moved system/cache and system/logs directories to the application directory.</li>
 			<li>Added routing overrides to the main index.php file, enabling the normal routing to be overridden on a per "index" file basis.</li>
-			<li>Added the ability to set config values (or override config values) directly from data set in the main index.php file. This allows a single application to be used with multiple front controllers, each having its own config values.</li>
+			<li>Added the ability to set config values (or override config values) directly from data set in the main index.php file.  This allows a single application to be used with multiple front controllers, each having its own config values.</li>
 			<li>Added <kbd>$config['directory_trigger']</kbd> to the config file so that a controller sub-directory can be specified when running _GET strings instead of URI segments.</li>
-			<li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file. This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory. See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li>
+			<li>Added ability to set "Package" paths - specific paths where the Loader and Config classes should try to look first for a requested file.  This allows distribution of sub-applications with their own libraries, models, config files, etc. in a single "package" directory.  See the <a href="libraries/loader.html">Loader class</a> documentation for more details.</li>
 			<li>In-development code is now hosted at <a href="http://bitbucket.org/ellislab/codeigniter-reactor/">BitBucket</a>.</li>
 			<li>Removed the deprecated Validation Class.</li>
 			<li>Added CI_ Prefix to all core classes.</li>
@@ -261,7 +261,7 @@
 			<li>Added <kbd>convert_accented_characters()</kbd> function to <a href="./helpers/text_helper.html">text helper</a>.</li>
 			<li>Added accept-charset to the list of inserted attributes of <kbd>form_open()</kbd> in the <a href="helpers/form_helper.html">Form Helper</a>.</li>
 			<li>Deprecated the <kbd>dohash()</kbd> function in favour of <kbd>do_hash()</kbd> for naming consistency.</li>
-			<li>Non-backwards compatible change made to <kbd>get_dir_file_info()</kbd> in the <a href="helpers/file_helper.html">File Helper</a>. No longer recurses
+			<li>Non-backwards compatible change made to <kbd>get_dir_file_info()</kbd> in the <a href="helpers/file_helper.html">File Helper</a>.  No longer recurses
 				by default so as to encourage responsible use (this function can cause server performance issues when used without caution).</li>
 			<li>Modified the second parameter of <kbd>directory_map()</kbd> in the <a href="helpers/directory_helper.html">Directory Helper</a> to accept an integer to specify recursion depth.</li>
 			<li>Modified <kbd>delete_files()</kbd> in the <a href="helpers/file_helper.html">File Helper</a> to return FALSE on failure.</li>
@@ -280,7 +280,7 @@
 	<li>Other Changes
 		<ul>
 			<li>Added an optional second parameter to <kbd>show_404()</kbd> to disable logging.</li>
-			<li>Updated loader to automatically apply the sub-class prefix as an option when loading classes. Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.</li>
+			<li>Updated loader to automatically apply the sub-class prefix as an option when loading classes.  Class names can be prefixed with the standard "CI_" or the same prefix as the subclass prefix, or no prefix at all.</li>
 			<li>Increased randomness with <kbd>is_really_writable()</kbd> to avoid file collisions when hundreds or thousands of requests occur at once.</li>
 			<li>Switched some DIR_WRITE_MODE constant uses to FILE_WRITE_MODE where files and not directories are being operated on.</li>
 			<li><kbd>get_mime_by_extension()</kbd> is now case insensitive.</li>
@@ -490,15 +490,15 @@
 <ul>
 	<li>Libraries
 		<ul>
-			<li>Added a new <a href="libraries/form_validation.html">Form Validation Class</a>. It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files. <strong>Please note that the old Validation class is now deprecated</strong>. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.</li>
+			<li>Added a new <a href="libraries/form_validation.html">Form Validation Class</a>.  It simplifies setting rules and field names, supports arrays as field names, allows groups of validation rules to be saved in a config file, and adds some helper functions for use in view files.  <strong>Please note that the old Validation class is now deprecated</strong>. We will leave it in the library folder for some time so that existing applications that use it will not break, but you are encouraged to migrate to the new version.</li>
 			<li>Updated the <a href="libraries/sessions.html">Sessions class</a> so that any custom data being saved gets stored to a database rather than the session cookie (assuming you are using a database to store session data), permitting much more data to be saved.</li>
 			<li>Added the ability to store libraries in subdirectories within either the main "libraries" or the local application "libraries" folder. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li>
 			<li>Added the ability to assign library objects to your own variable names when you use <kbd>$this->load->library()</kbd>. Please see the <a href="libraries/loader.html">Loader class</a> for more info.</li>
 			<li>Added controller class/method info to <a href="general/profiling.html">Profiler class</a> and support for multiple database connections.</li>
 			<li>Improved the "auto typography" feature and moved it out of the helper into its own <a href="libraries/typography.html">Typography Class</a>.</li>
 			<li>Improved performance and accuracy of <kbd>xss_clean()</kbd>, including reduction of false positives on image/file tests.</li>
-			<li>Improved <a href="./libraries/parser.html">Parser class</a> to allow multiple calls to the parse() function. The output of each is appended in the output.</li>
-			<li>Added <dfn>max_filename</dfn> option to set a file name length limit in the <a href="libraries/file_uploading.html">File Upload Class</a>.</li>
+			<li>Improved <a href="./libraries/parser.html">Parser class</a> to allow multiple calls to the parse() function.  The output of each is appended in the output.</li>
+			<li>Added <dfn>max_filename</dfn> option to set a file name length limit in the  <a href="libraries/file_uploading.html">File Upload Class</a>.</li>
 			<li>Added <dfn>set_status_header()</dfn> function to <a href="libraries/output.html">Output class</a>.</li>
 			<li>Modified <a href="libraries/pagination.html">Pagination</a> class to only output the "First" link when the link for page one would not be shown.</li>
 			<li>Added support for mb_strlen in the <a href="libraries/form_validation.html">Form Validation</a> class so that multi-byte languages will calculate string lengths properly.</li>
@@ -506,8 +506,8 @@
 	</li>
 	<li>Database
 		<ul>
-			<li>Improved Active Record class to allow full path column and table names: hostname.database.table.column. Also improved the alias handling.</li>
-			<li>Improved how table and column names are escaped and prefixed. It now honors full path names when adding prefixes and escaping.</li>
+			<li>Improved Active Record class to allow full path column and table names:  hostname.database.table.column.  Also improved the alias handling.</li>
+			<li>Improved how table and column names are escaped and prefixed.  It now honors full path names when adding prefixes and escaping.</li>
 			<li>Added Active Record caching feature to "update" and "delete" functions.</li>
 			<li>Added removal of non-printing control characters in <kbd>escape_str()</kbd> of DB drivers that do not have native PHP escaping mechanisms (mssql, oci8, odbc), to avoid potential SQL errors, and possible sources of SQL injection.</li>
 			<li>Added port support to MySQL, MySQLi, and MS SQL database drivers.</li>
@@ -516,10 +516,10 @@
 	</li>
 	<li>Helpers
 		<ul>
-			<li>Added several new "setting" functions to the <a href="helpers/form_helper.html">Form helper</a> that allow POST data to be retrieved and set into forms. These are intended to be used on their own, or with the new <a href="libraries/form_validation.html">Form Validation Class</a>.</li>
-			<li>Added <kbd>current_url()</kbd> and uri_segments() to <a href="helpers/url_helper.html">URL helper</a>.</li>
+			<li>Added several new "setting" functions to the <a href="helpers/form_helper.html">Form helper</a> that allow POST data to be retrieved and set into forms.  These are intended to be used on their own, or with the new <a href="libraries/form_validation.html">Form Validation Class</a>.</li>
+			<li>Added <kbd>current_url()</kbd> and uri_segments() to  <a href="helpers/url_helper.html">URL helper</a>.</li>
 			<li>Altered <kbd>auto_link()</kbd> in the <a href="helpers/url_helper.html">URL helper</a> so that email addresses with "+" included will be linked.</li>
-			<li>Added <kbd>meta()</kbd> function to <a href="helpers/html_helper.html">HTML helper</a>.</li>
+			<li>Added <kbd>meta()</kbd> function to  <a href="helpers/html_helper.html">HTML helper</a>.</li>
 			<li>Improved accuracy of calculations in <a href="helpers/number_helper.html">Number helper</a>.</li>
 			<li>Removed added newlines ("\n") from most form and html helper functions.</li>
 			<li>Tightened up validation in the <a href="helpers/date_helper.html">Date helper</a> function <kbd>human_to_unix()</kbd>, and eliminated the POSIX regex.</li>
@@ -561,10 +561,10 @@
 	<li>Fixed Oracle bug (#3306) that was preventing multiple queries in one action.</li>
 	<li>Fixed ODBC bug that was ignoring connection params due to its use of a constructor.</li>
 	<li>Fixed a DB driver bug with num_rows() that would cause an error with the Oracle driver.</li>
-	<li>Fixed MS SQL bug (#4915). Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.</li>
+	<li>Fixed MS SQL bug (#4915).  Added brackets around database name in MS SQL driver when selecting the database, in the event that reserved characters are used in the name.</li>
 	<li>Fixed a DB caching bug (4718) in which the path was incorrect when no URI segments were present.</li>
-	<li>Fixed Image_lib class bug #4562. A path was not defined for NetPBM.</li>
-	<li>Fixed Image_lib class bug #4532. When cropping an image with identical height/width settings on output, a copy is made.</li>
+	<li>Fixed Image_lib class bug #4562.  A path was not defined for NetPBM.</li>
+	<li>Fixed Image_lib class bug #4532.  When cropping an image with identical height/width settings on output, a copy is made.</li>
 	<li>Fixed DB_driver bug (4900), in which a database error was not being logged correctly.</li>
 	<li>Fixed DB backup bug in which field names were not being escaped.</li>
 	<li>Fixed a DB Active Record caching bug in which multiple calls to cached data were not being honored.</li>
@@ -805,8 +805,8 @@
 		<ul>
 			<li>Added <kbd>protect_identifiers()</kbd> in <a href="./database/active_record.html">Active Record</a>.</li>
 			<li>All AR queries are backticked if appropriate to the database.</li>
-			<li>Added <kbd>where_in()</kbd>, <kbd>or_where_in()</kbd>, <kbd>where_not_in()</kbd>, <kbd>or_where_not_in()</kbd>, <kbd>not_like()</kbd> and <kbd>or_not_like()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li>
-			<li>Added support for <kbd>limit()</kbd> into <kbd>update()</kbd> and <kbd>delete()</kbd> statements in <a href="./database/active_record.html">Active Record</a>.</li>
+			<li>Added <kbd>where_in()</kbd>, <kbd>or_where_in()</kbd>, <kbd>where_not_in()</kbd>,  <kbd>or_where_not_in()</kbd>, <kbd>not_like()</kbd> and <kbd>or_not_like()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li>
+			<li>Added support for <kbd>limit()</kbd>  into <kbd>update()</kbd> and <kbd>delete()</kbd> statements in  <a href="./database/active_record.html">Active Record</a>.</li>
 			<li>Added <kbd>empty_table()</kbd> and <kbd>truncate_table()</kbd> to <a href="./database/active_record.html">Active Record</a>.</li>
 			<li>Added the ability to pass an array of tables to the <kbd>delete()</kbd> statement in <a href="./database/active_record.html">Active Record</a>.</li>
 			<li>Added <kbd>count_all_results()</kbd> function to <a href="./database/active_record.html">Active Record</a>.</li>
@@ -825,7 +825,7 @@
 			<li>Added $this->db->dbprefix() to manually add database prefixes.</li>
 			<li>Added 'random' as an <kbd>order_by()</kbd> option , and removed &quot;rand()&quot; as a listed option as it was MySQL only.</li>
 			<li>Added a check for NULL fields in the MySQL database backup utility.</li>
-			<li>Added &quot;constrain_by_prefix&quot; parameter to db-&gt;list_table() function. If set to TRUE it will limit the result to only table names with the current prefix.</li>
+			<li>Added &quot;constrain_by_prefix&quot; parameter to db-&gt;list_table() function.  If set to TRUE it will limit the result to only table names with the current prefix.</li>
 			<li>Deprecated from Active Record; <kbd>getwhere()</kbd> for <kbd>get_where()</kbd>; <kbd>groupby()</kbd> for <kbd>group_by()</kbd>; <kbd>havingor()</kbd> for <kbd>having_or()</kbd>; <kbd>orderby()</kbd> for <kbd>order_by</kbd>; <kbd>orwhere()</kbd> for <kbd>or_where()</kbd>; and <kbd>orlike()</kbd> for <kbd>or_like()</kbd>.</li>
 			<li>Modified <kbd>csv_from_result()</kbd> to output CSV data more in the spirit of basic rules of RFC 4180.</li>
 			<li>Added 'char_set' and 'dbcollat' database configuration settings, to explicitly set the client communication properly.</li>
@@ -944,7 +944,7 @@
 	<li>Fixed a bug in Validation where <kbd>valid_ip()</kbd> wasn't called properly.</li>
 	<li>Fixed a bug in Validation where individual error messages for checkboxes wasn't supported.</li>
 	<li>Fixed a bug in captcha calling an invalid PHP function.</li>
-	<li>Fixed a bug in the cookie helper "set_cookie" function. It was not honoring the config settings.</li>
+	<li>Fixed a bug in the cookie helper "set_cookie" function.  It was not honoring the config settings.</li>
 	<li>Fixed a bug that was making validation callbacks required even when not set as such.</li>
 	<li>Fixed a bug in the XML-RPC library so if a type is specified, a more intelligent decision is made as to the default type.</li>
 	<li>Fixed an example of comma-separated emails in the email library documentation.</li>
@@ -956,7 +956,7 @@
 	<li>Fixed a typo in the docblock comments that had CodeIgniter spelled CodeIgnitor.</li>
 	<li>Fixed a typo in the <a href="./helpers/string_helper.html">String Helper</a> (uniquid changed to uniqid).</li>
 	<li>Fixed typos in the email Language class (email_attachment_unredable, email_filed_smtp_login), and FTP Class (ftp_unable_to_remame).</li>
-	<li>Added a stripslashes() into the Upload Library.</li>
+	<li>Added a stripslashes()  into the Upload Library.</li>
 	<li>Fixed a series of grammatical and spelling errors in the language files.</li>
 	<li>Fixed assorted user guide typos.</li>
 </ul>
@@ -968,10 +968,10 @@
 	<li>Added array to string into the <a href="general/profiling.html">profiler</a>.</li>
 	<li>Added some additional mime types in application/config/mimes.php.</li>
 	<li>Added filename_security() method to <a href="./libraries/input.html">Input library</a>.</li>
-	<li>Added some additional arguments to the <a href="./helpers/inflector_helper.html">Inflection helper</a> singular() to compensate for words ending in "s". Also added a force parameter to pluralize().</li>
-	<li>Added $config['charset'] to the config file. Default value is 'UTF-8', used in some string handling functions.</li>
+	<li>Added some additional arguments to the <a href="./helpers/inflector_helper.html">Inflection helper</a> singular() to compensate for words ending in "s".  Also added a force parameter to pluralize().</li>
+	<li>Added $config['charset'] to the config file.  Default value is 'UTF-8', used in some string handling functions.</li>
 	<li>Fixed MSSQL insert_id().</li>
-	<li>Fixed a logic error in the DB trans_status() function. It was incorrectly returning TRUE on failure and FALSE on success.</li>
+	<li>Fixed a logic error in the DB trans_status() function.  It was incorrectly returning TRUE on failure and FALSE on success.</li>
 	<li>Fixed a bug that was allowing multiple load attempts on extended classes.</li>
 	<li>Fixed a bug in the bootstrap file that was incorrectly attempting to discern the full server path even when it was explicity set by the user.</li>
 	<li>Fixed a bug in the escape_str() function in the MySQL driver.</li>
@@ -987,7 +987,7 @@
 	<li>Fixed a bug where one could unset certain PHP superglobals by setting them via GET or POST data</li>
 	<li>Fixed an undefined function error in the insert_id() function of the PostgreSQL driver</li>
 	<li>Fixed various doc typos. </li>
-	<li>Documented two functions from the <a href="./helpers/string_helper.html">String helper </a> that were missing from the user guide: trim_slashes() and reduce_double_slashes().</li>
+	<li>Documented two functions from the <a href="./helpers/string_helper.html">String helper </a> that were missing from the user guide:  trim_slashes() and reduce_double_slashes().</li>
 	<li>Docs now validate to XHTML 1 transitional</li>
 	<li>Updated the XSS Filtering to take into account the IE expression() ability and improved certain deletions to prevent possible exploits</li>
 	<li>Modified the Router so that when Query Strings are Enabled, the controller trigger and function trigger values are sanitized for filename include security.</li>
@@ -995,7 +995,7 @@
 	<li>Modified XSS Cleaning routine to be more performance friendly and compatible with PHP 5.2's new PCRE backtrack and recursion limits.</li>
 	<li>Modified the <a href="./helpers/url_helper.html">URL Helper</a> to type cast the $title as a string in case a numeric value is supplied</li>
 	<li>Modified Form Helper form_dropdown() to type cast the keys and values of the options array as strings, allowing numeric values to be properly set as 'selected'</li>
-	<li>Deprecated the use if <kbd>is_numeric()</kbd> in various places since it allows periods. Due to compatibility problems with <kbd>ctype_digit()</kbd>, making it unreliable in some installations, the following regular expression was used instead: <kbd>preg_match("/[^0-9]/", $n)</kbd></li>
+	<li>Deprecated the use if <kbd>is_numeric()</kbd> in various places since it allows periods.  Due to compatibility problems with <kbd>ctype_digit()</kbd>, making it unreliable in some installations, the following regular expression was used instead:  <kbd>preg_match("/[^0-9]/", $n)</kbd></li>
 	<li>Deprecated: APPVER has been deprecated and replaced with CI_VERSION for clarity. </li>
 </ul>
 <h2>Version 1.5.3</h2>
@@ -1021,7 +1021,7 @@
 	<li>Fixed a bug in the <a href="./helpers/download_helper.html">download_helper</a> that was causing Internet Explorer to load rather than download </li>
 	<li>Fixed a bug in the Active Record Join function that was not taking table prefixes into consideration.</li>
 	<li>Removed unescaped variables in error messages of Input and Router classes</li>
-	<li>Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log. </li>
+	<li>Fixed a bug in the Loader that was causing errors on Libraries loaded twice. A debug message is now silently made in the log.  </li>
 	<li>Fixed a bug in the <a href="./helpers/form_helper.html">form helper</a> that gave textarea a value attribute </li>
 	<li>Fixed a bug in the <a href="./libraries/image_lib.php">Image Library</a> that was ignoring resizing the same size image </li>
 	<li>Fixed some doc typos.</li>
@@ -1074,10 +1074,10 @@
 <li>Added <a href="./database/results.html">$query->free_result()</a> to database class.</li>
 <li>Added <a href="./database/fields.html">$query->list_fields()</a> function to database class</li>
 <li>Added <a href="./database/helpers.html">$this->db->platform()</a> function</li>
-<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: get_filenames()</li>
-<li>Added new helper: <a href="./helpers/smiley_helper.html">Smiley Helper</a></li>
-<li>Added support for &lt;ul> and &lt;ol> lists in the <a href="./helpers/html_helper.html">HTML Helper</a></li>
-<li>Added the ability to rewrite <a href="./general/alternative_php.html">short tags</a> on-the-fly, converting them to standard PHP statements, for those servers that do not support short tags. This allows the cleaner syntax to be used regardless of whether it's supported by the server.</li>
+<li>Added new <a href="./helpers/file_helper.html">File Helper</a>:  get_filenames()</li>
+<li>Added new helper:  <a href="./helpers/smiley_helper.html">Smiley Helper</a></li>
+<li>Added support for &lt;ul> and &lt;ol> lists in the  <a href="./helpers/html_helper.html">HTML Helper</a></li>
+<li>Added the ability to rewrite <a href="./general/alternative_php.html">short tags</a> on-the-fly, converting them to standard PHP statements, for those servers that do not support short tags.  This allows the cleaner syntax to be used regardless of whether it's supported by the server.</li>
 <li>Added the ability to <a href="./general/managing_apps.html">rename or relocate the "application" folder</a>.</li>
 <li>Added more thorough initialization in the upload class so that all class variables are reset.</li>
 <li>Added "is_numeric" to validation, which uses the native PHP is_numeric function.</li>
@@ -1085,7 +1085,7 @@
 <li>Moved most of the functions in the Controller class into the Loader class, allowing fewer reserved function names for controllers when running under PHP 5.</li>
 <li>Updated the DB Result class to return an empty array when $query->result() doesn't produce a result.</li>
 <li>Updated the <dfn>input->cookie()</dfn> and <dfn>input->post()</dfn> functions in <a href="./libraries/input.html">Input Class</a> to permit arrays contained cookies that are arrays to be run through the XSS filter.</li>
-<li>Documented three functions from the <a href="./libraries/validation.html">Validation class</a> that were missing from the user guide: set_select(), set_radio(), and set_checkbox().</li>
+<li>Documented three functions from the <a href="./libraries/validation.html">Validation class</a> that were missing from the user guide:  set_select(), set_radio(), and set_checkbox().</li>
 <li>Fixed a bug in the Email class related to SMTP Helo data.</li>
 <li>Fixed a bug in the word wrapping helper and function in the email class.</li>
 <li>Fixed a bug in the validation class.</li>
@@ -1096,9 +1096,9 @@
 <li>Fixed a pagination bug that was permitting negative values in the URL.</li>
 <li>Fixed an oversight in which the Loader class was not allowed to be extended.</li>
 <li>Changed <dfn>_get_config()</dfn> to <dfn>get_config()</dfn> since the function is not a private one.</li>
-<li><strong>Deprecated "init" folder</strong>. Initialization happens automatically now. <a href="./general/creating_libraries.html">Please see documentation</a>.</li>
-<li><strong>Deprecated</strong> $this->db->field_names() USE $this->db->list_fields()</li>
-<li><strong>Deprecated</strong> the <dfn>$config['log_errors']</dfn> item from the config.php file. Instead, <dfn>$config['log_threshold']</dfn> can be set to "0" to turn it off.</li>
+<li><strong>Deprecated "init" folder</strong>.  Initialization happens automatically now.  <a href="./general/creating_libraries.html">Please see documentation</a>.</li>
+<li><strong>Deprecated</strong> $this->db->field_names()  USE  $this->db->list_fields()</li>
+<li><strong>Deprecated</strong> the <dfn>$config['log_errors']</dfn> item from the config.php file.  Instead, <dfn>$config['log_threshold']</dfn> can be set to "0" to turn it off.</li>
 </ul>
 
 
@@ -1109,10 +1109,10 @@
 
 <ul>
 <li>Added a new feature that passes URI segments directly to your function calls as parameters. See the <a href="./general/controllers.html">Controllers</a> page for more info.</li>
-<li>Added support for a function named <dfn>_output()</dfn>, which when used in your controllers will received the final rendered output from the output class. More info in the <a href="controllers.html">Controllers</a> page.</li>
+<li>Added support for a function named <dfn>_output()</dfn>, which when used in your controllers will received the final rendered output from the output class.  More info in the <a href="controllers.html">Controllers</a> page.</li>
 <li>Added several new functions in the <a href="./libraries/uri.html">URI Class</a> to let you retrieve and manipulate URI segments that have been re-routed using the <a href="routing.html">URI Routing</a> feature. Previously, the URI class did not permit you to access any re-routed URI segments, but now it does.</li>
 <li>Added <a href="./libraries/output.html">$this->output->set_header()</a> function, which allows you to set server headers.</li>
-<li>Updated plugins, helpers, and language classes to allow your <dfn>application</dfn> folder to contain its own plugins, helpers, and language folders. Previously they were always treated as global for your entire installation. If your application folder contains any of these resources they will be used <em>instead</em> the global ones.</li>
+<li>Updated plugins, helpers, and language classes to allow your <dfn>application</dfn> folder to contain its own plugins, helpers, and language folders.  Previously they were always treated as global for your entire installation.  If your application folder contains any of these resources they will be used <em>instead</em> the global ones.</li>
 <li>Added <a href="./helpers/inflector_helper.html">Inflector helper</a>.</li>
 <li>Added <dfn>element()</dfn> function in the <a href="./helpers/array_helper.html">array helper</a>.</li>
 <li>Added <dfn>RAND()</dfn> to active record <dfn>orderby()</dfn> function.</li>
@@ -1128,8 +1128,8 @@
 <li>Fixed an oversight in the upload class. An item mentioned in the 1.4 changelog was missing.</li>
 <li>Added some code to allow email attachments to be reset when sending batches of email.</li>
 <li>Deprecated the <dfn>application/scripts</dfn> folder. It will continue to work for legacy users, but it is recommended that you create your own
-<a href="./general/libraries.html">libraries</a> or <a href="./general/models.html">models</a> instead. It was originally added before CI had user libraries or models, but it's not needed anymore.</li>
-<li>Deprecated the <dfn>$autoload['core']</dfn> item from the <kbd>autoload.php</kbd> file. Instead, please now use: <kbd>$autoload['libraries']</kbd></li>
+<a href="./general/libraries.html">libraries</a> or <a href="./general/models.html">models</a> instead.  It was originally added before CI had user libraries or models, but it's not needed anymore.</li>
+<li>Deprecated the <dfn>$autoload['core']</dfn> item from the <kbd>autoload.php</kbd> file.  Instead, please now use: <kbd>$autoload['libraries']</kbd></li>
 <li>Deprecated the following database functions: $this->db->smart_escape_str() and $this->db->fields().</li>
 </ul>
 
@@ -1140,7 +1140,7 @@
 
 <ul>
 <li>Added <a href="./general/hooks.html">Hooks</a> feature, enabling you to tap into and modify the inner workings of the framework without hacking the core files.</li>
-<li>Added the ability to organize controller files <a href="./general/controllers.html">into sub-folders</a>. Kudos to Marco for <a href="http://codeigniter.com/forums/viewthread/627/">suggesting</a> this (and the next two) feature.</li>
+<li>Added the ability to organize controller files <a href="./general/controllers.html">into sub-folders</a>.  Kudos to Marco for <a href="http://codeigniter.com/forums/viewthread/627/">suggesting</a> this (and the next two) feature.</li>
 <li>Added regular expressions support for <a href="./general/routing.html">routing rules</a>.</li>
 <li>Added the ability to <a href="./general/controllers.html">remap function calls</a> within your controllers.</li>
 <li>Added the ability to <a href="./general/core_classes.html">replace core system classes</a> with your own classes.</li>
@@ -1155,7 +1155,7 @@
 <li>Updated the URI Protocol code to allow more options so that URLs will work more reliably in different environments.</li>
 <li>Updated the <dfn>form_open()</dfn> helper to allow the GET method to be used.</li>
 <li>Updated the MySQLi <dfn>execute()</dfn> function with some code to help prevent lost connection errors.</li>
-<li>Updated the SQLite Driver to check for object support before attempting to return results as objects. If unsupported it returns an array.</li>
+<li>Updated the SQLite Driver to check for object support before attempting to return results as objects.  If unsupported it returns an array.</li>
 <li>Updated the Models loader function to allow multiple loads of the same model.</li>
 <li>Updated the MS SQL driver so that single quotes are escaped.</li>
 <li>Updated the Postgres and ODBC drivers for better compatibility.</li>
@@ -1163,7 +1163,7 @@
 <li>Removed some references that were interfering with PHP 4.4.1 compatibility.</li>
 <li>Removed backticks from Postgres class since these are not needed.</li>
 <li>Renamed <dfn>display()</dfn> to <dfn>_display()</dfn> in the Output class to make it clear that it's a private function.</li>
-<li>Deprecated the hash() function due to a naming conflict with a native PHP function with the same name. Please use <kbd>dohash()</kbd> instead.</li>
+<li>Deprecated the hash() function due to a naming conflict with a native PHP function with the same name.  Please use <kbd>dohash()</kbd> instead.</li>
 <li>Fixed an bug that was preventing the input class from unsetting GET variables.</li>
 <li>Fixed a router bug that was making it too greedy when matching end segments.</li>
 <li>Fixed a bug that was preventing multiple discrete database calls.</li>
@@ -1197,11 +1197,11 @@
 <ul>
 
 <li>Models do <strong>not</strong> connect automatically to the database as of this version. <a href="./general/models.html">More info here</a>.</li>
-<li>Updated the Sessions class to utilize the active record class when running session related queries. Previously the queries assumed MySQL syntax.</li>
+<li>Updated the Sessions class to utilize the active record class when running session related queries.  Previously the queries assumed MySQL syntax.</li>
 <li>Updated alternator() function to re-initialize when called with no arguments, allowing multiple calls.</li>
 <li>Fixed a bug in the active record "having" function.</li>
 <li>Fixed a problem in the validation class which was making checkboxes be ignored when required.</li>
-<li>Fixed a bug in the word_limiter() helper function. It was cutting off the fist word.</li>
+<li>Fixed a bug in the word_limiter() helper function.  It was cutting off the fist word.</li>
 <li>Fixed a bug in the xss_clean function due to a PHP bug that affects some versions of html_entity_decode.</li>
 <li>Fixed a validation bug that was preventing rules from being set twice in one controller.</li>
 <li>Fixed a calendar bug that was not letting it use dynamically loaded languages.</li>
@@ -1219,7 +1219,7 @@
 <ul>
 <li>Changed the behavior of the validation class such that if a "required" rule is NOT explicitly stated for a field then all other tests get ignored.</li>
 <li>Fixed a bug in the Controller class that was causing it to look in the local "init" folder instead of the main system one.</li>
-<li>Fixed a bug in the init_pagination file. The $config item was not being set correctly.</li>
+<li>Fixed a bug in the init_pagination file.  The $config item was not being set correctly.</li>
 <li>Fixed a bug in the auto typography helper that was causing inconsistent behavior.</li>
 <li>Fixed a couple bugs in the Model class.</li>
 <li>Fixed some documentation typos and errata.</li>
@@ -1232,8 +1232,8 @@
 
 <ul>
 <li>Added a <a href="./libraries/unit_testing.html">Unit Testing Library</a>.</li>
-<li>Added the ability to pass objects to the <strong>insert()</strong> and <strong>update()</strong> database functions.
-This feature enables you to (among other things) use your <a href="./general/models.html">Model class</a> variables to run queries with. See the Models page for details.</li>
+<li>Added the ability to pass objects to the <strong>insert()</strong> and <strong>update()</strong>  database functions.
+This feature enables you to (among other things) use your  <a href="./general/models.html">Model class</a> variables to run queries with. See the Models page for details.</li>
 <li>Added the ability to pass objects to the <a href="./general/views.html">view loading function</a>: $this->load->view('my_view', <var>$object</var>);</li>
 <li>Added <kbd>getwhere</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li>
 <li>Added <kbd>count_all</kbd> function to <a href="./database/active_record.html">Active Record class</a>.</li>
@@ -1257,10 +1257,10 @@
 <li>Redesigned the database libraries to support additional RDBMs (Postgres, MySQLi, etc.).</li>
 <li>Redesigned the <a href="./database/active_record.html">Active Record class</a> to enable more varied types of queries with simpler syntax, and advanced features like JOINs.</li>
 <li>Added a feature to the database class that lets you run <a href="./database/call_function.html">custom function calls</a>.</li>
-<li>Added support for <a href="controllers.html">private functions</a> in your controllers. Any controller function name that starts with an underscore will not be served by a URI request.</li>
+<li>Added support for <a href="controllers.html">private functions</a> in your controllers.  Any controller function name that starts with an underscore will not be served by a URI request.</li>
 <li>Added the ability to pass your own initialization parameters to your <a href="creating_libraries.html">custom core libraries</a> when using $this->load->library()</li>
-<li>Added support for running standard <a href="urls.html">query string URLs</a>. These can be optionally enabled in your config file.</li>
-<li>Added the ability to <a href="urls.html">specify a "suffix"</a>, which will be appended to your URLs. For example, you could add .html to your URLs, making them appear static. This feature is enabled in your config file.</li>
+<li>Added support for running standard <a href="urls.html">query string URLs</a>.  These can be optionally enabled in your config file.</li>
+<li>Added the ability to  <a href="urls.html">specify a "suffix"</a>, which will be appended to your URLs.  For example, you could add .html to your URLs, making them appear static. This feature is enabled in your config file.</li>
 <li>Added a new error template for use with native PHP errors.</li>
 <li>Added "alternator" function in the <a href="./helpers/string_helper.html">string helpers</a>.</li>
 <li>Removed slashing from the input class. After much debate we decided to kill this feature.</li>
@@ -1271,7 +1271,7 @@
 <li>Deprecated: <var>$this->db->use_table()</var> has been deprecated. Please read the <a href="./database/active_record.html">Active Record</a> page for information.</li>
 <li>Deprecated: <var>$this->db->smart_escape_str()</var> has been deprecated. Please use this instead: <var>$this->db->escape()</var></li>
 <li>Fixed a bug in the exception handler which was preventing some PHP errors from showing up.</li>
-<li>Fixed a typo in the URI class. $this->total_segment() should be plural: $this->total_segments()</li>
+<li>Fixed a typo in the URI class.  $this->total_segment() should be plural: $this->total_segments()</li>
 <li>Fixed some typos in the default calendar template</li>
 <li>Fixed some typos in the user guide</li>
 </ul>
@@ -1289,12 +1289,12 @@
 <ul>
 <li>Redesigned some internal aspects of the framework to resolve scoping problems that surfaced during the beta tests. The problem was most notable when instantiating classes in your constructors, particularly if those classes in turn did work in their constructors.</li>
 <li>Added a global function named <a href="ancillary_classes.html">get_instance()</a> allowing the main CodeIgniter object to be accessible throughout your own classes.</li>
-<li>Added new <a href="./helpers/file_helper.html">File Helper</a>: delete_files()</li>
-<li>Added new <a href="./helpers/url_helper.html">URL Helpers</a>: base_url(), index_page()</li>
+<li>Added new <a href="./helpers/file_helper.html">File Helper</a>:  delete_files()</li>
+<li>Added new <a href="./helpers/url_helper.html">URL Helpers</a>:  base_url(), index_page()</li>
 <li>Added the ability to create your own <a href="creating_libraries.html">core libraries</a> and store them in your local application directory.</li>
 <li>Added an <kbd>overwrite</kbd> option to the <a href="./libraries/file_uploading.html">Upload class</a>, enabling files to be overwritten rather than having the file name appended.</li>
 <li>Added Javascript Calendar plugin.</li>
-<li>Added search feature to user guide. Note: This is done using Google, which at the time of this writing has not crawled all the pages of the docs.</li>
+<li>Added search feature to user guide.  Note: This is done using Google, which at the time of this writing has not crawled all the pages of the docs.</li>
 <li>Updated the parser class so that it allows tag pars within other tag pairs.</li>
 <li>Fixed a bug in the DB "where" function.</li>
 <li>Fixed a bug that was preventing custom config files to be auto-loaded.</li>
diff --git a/user_guide/database/active_record.html b/user_guide/database/active_record.html
index 566b260..6283381 100644
--- a/user_guide/database/active_record.html
+++ b/user_guide/database/active_record.html
@@ -59,12 +59,12 @@
 <p>CodeIgniter uses a modified version of the Active Record Database Pattern.
 This pattern allows information to be retrieved, inserted, and updated in your database with minimal scripting.
 In some cases only one or two lines of code are necessary to perform a database action.
-CodeIgniter does not require that each database table be its own class file. It instead provides a more simplified interface.</p>
+CodeIgniter does not require that each database table be its own class file.  It instead provides a more simplified interface.</p>
 
 <p>Beyond simplicity, a major benefit to using the Active Record features is that it allows you to create database independent applications, since the query syntax
-is generated by each database adapter. It also allows for safer queries, since the values are escaped automatically by the system.</p>
+is generated by each database adapter.  It also allows for safer queries, since the values are escaped automatically by the system.</p>
 
-<p class="important"><strong>Note:</strong> If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.<br /></p>
+<p class="important"><strong>Note:</strong>  If you intend to write your own queries you can disable this class in your database config file, allowing the core database library and adapter to utilize fewer resources.<br /></p>
 
 <ul>
 <li><a href="#select">Selecting Data</a></li>
@@ -84,7 +84,7 @@
 
 <h2>$this->db->get();</h2>
 
-<p>Runs the selection query and returns the result. Can be used by itself to retrieve all records from a table:</p>
+<p>Runs the selection query and returns the result.  Can be used by itself to retrieve all records from a table:</p>
 
 <code>$query = $this->db->get('mytable');<br />
 <br />
@@ -126,7 +126,7 @@
 $query = $this->db->get('mytable');<br />
 <br />
 // Produces: SELECT title, content, date FROM mytable</code></p>
-<p class="important"><strong>Note:</strong> If you are selecting all (*) from a table you do not need to use this function. When omitted, CodeIgniter assumes you wish to SELECT *</p>
+<p class="important"><strong>Note:</strong> If you are selecting all (*) from a table you do not need to use this function.  When omitted, CodeIgniter assumes you wish to SELECT *</p>
 
 <p>$this-&gt;db-&gt;select() accepts an optional second parameter. If you set it to FALSE, CodeIgniter will not try to protect your field or table names with backticks. This is useful if you need a compound select statement.</p>
 <p><code>$this-&gt;db-&gt;select('(SELECT SUM(payments.amount) FROM payments WHERE payments.invoice_id=4') AS amount_paid', FALSE); <br />
@@ -278,7 +278,7 @@
 
 
 <h2>$this->db->where_in();</h2>
-<p>Generates a WHERE field IN ('item', 'item') SQL query joined with AND if appropriate</p>
+<p>Generates a WHERE field IN ('item', 'item') SQL query joined with  AND if appropriate</p>
 <p><code>
 	$names = array('Frank', 'Todd', 'James');<br />
 	$this->db->where_in('username', $names);<br />
@@ -322,7 +322,7 @@
 	<code>$this->db->like('title', 'match');<br />
 	$this->db->like('body', 'match');
 	<br /><br />
-	// WHERE title LIKE '%match%' AND body LIKE '%match%</code>
+	// WHERE title LIKE '%match%' AND  body LIKE '%match%</code>
 	If you want to control where the wildcard (%) is placed, you can use an optional third argument. Your options are 'before', 'after' and 'both' (which is the default).
 	<code>$this->db->like('title', 'match', 'before');
 	<br />
@@ -340,7 +340,7 @@
 	$array = array('title' => $match, 'page1' => $match, 'page2' => $match);<br /><br />
 
 	$this->db->like($array);
-	<br /><br />// WHERE title LIKE '%match%' AND page1 LIKE '%match%' AND page2 LIKE '%match%'</code></li>
+	<br /><br />// WHERE title LIKE '%match%' AND  page1 LIKE '%match%' AND  page2 LIKE '%match%'</code></li>
 	</ol>
 
 
@@ -351,7 +351,7 @@
 $this->db->like('title', 'match');<br />
 $this->db->or_like('body', $match);
 <br />
-<br />// WHERE title LIKE '%match%' OR body LIKE '%match%'</code>
+<br />// WHERE title LIKE '%match%' OR  body LIKE '%match%'</code>
 
 
 
@@ -367,7 +367,7 @@
 <code> $this-&gt;db-&gt;like('title', 'match');<br />
 $this-&gt;db-&gt;or_not_like('body', 'match'); <br />
 <br />
-// WHERE title LIKE '%match% OR body NOT LIKE '%match%'</code>
+// WHERE title  LIKE '%match% OR body NOT LIKE '%match%'</code>
 <h2>$this->db->group_by();</h2>
 <p>Permits you to write the GROUP BY portion of your query:</p>
 
@@ -385,7 +385,7 @@
 
 <h2> $this-&gt;db-&gt;distinct();<br />
 </h2>
-<p>Adds the &quot;DISTINCT&quot; keyword to a query</p>
+<p>Adds the &quot;DISTINCT&quot; keyword to  a query</p>
 <p><code>$this-&gt;db-&gt;distinct();<br />
 	$this-&gt;db-&gt;get('table');<br />
 		<br />
@@ -397,7 +397,7 @@
 <br />
 // Produces: HAVING user_id = 45<br />
 <br />
-$this-&gt;db-&gt;having('user_id', 45); <br />
+$this-&gt;db-&gt;having('user_id',  45); <br />
 // Produces: HAVING user_id = 45<br />
 <br />
 </code>
@@ -409,16 +409,16 @@
 		<br />
 	// Produces: HAVING title = 'My Title', id < 45</code></p>
 <p>If you are using a database that CodeIgniter escapes queries for, you can prevent escaping content by passing an optional third argument, and setting it to FALSE.</p>
-<p><code>$this-&gt;db-&gt;having('user_id', 45); <br />
+<p><code>$this-&gt;db-&gt;having('user_id',  45); <br />
 // Produces: HAVING `user_id` = 45 in some databases such as MySQL
 		<br />
-		$this-&gt;db-&gt;having('user_id', 45, FALSE); <br />
+		$this-&gt;db-&gt;having('user_id',  45, FALSE); <br />
 // Produces: HAVING user_id = 45</code></p>
 <h2>$this-&gt;db-&gt;or_having();</h2>
 <p>Identical to having(), only separates multiple clauses with &quot;OR&quot;.</p>
 <h2>$this->db->order_by();</h2>
 <p>Lets you set an ORDER BY clause. The first parameter contains the name of the column you would like to order by.
-The second parameter lets you set the direction of the result. Options are <kbd>asc</kbd> or <kbd>desc</kbd>, or <kbd>random</kbd>. </p>
+The second parameter lets you set the direction of the result.  Options are <kbd>asc</kbd> or <kbd>desc</kbd>, or <kbd>random</kbd>. </p>
 
 <code>$this->db->order_by("title", "desc");
 <br />
@@ -455,12 +455,12 @@
 <code>
 $this->db->limit(10, 20);<br />
 <br />
-// Produces: LIMIT 20, 10 (in MySQL. Other databases have slightly different syntax)</code>
+// Produces: LIMIT 20, 10 (in MySQL.  Other databases have slightly different syntax)</code>
 
 
 <h2>$this->db->count_all_results();</h2>
 
-<p>Permits you to determine the number of rows in a particular Active Record query. Queries will accept Active Record restrictors such as where(), or_where(), like(), or_like(), etc. Example:</p>
+<p>Permits you to determine the number of rows in a particular Active Record query. Queries will accept Active Record restrictors such as where(),  or_where(), like(), or_like(), etc. Example:</p>
 <code>echo $this->db->count_all_results('<var>my_table</var>');<br />
 
 // Produces an integer, like 25<br />
@@ -472,7 +472,7 @@
 
 <h2>$this->db->count_all();</h2>
 
-<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p>
+<p>Permits you to determine the number of rows in a particular table.  Submit the table name in the first parameter. Example:</p>
 
 <code>echo $this->db->count_all('<var>my_table</var>');<br />
 <br />
@@ -485,7 +485,7 @@
 
 <h2>$this->db->insert();</h2>
 <p>Generates an insert string based on the data you supply, and runs the query. You can either pass an
-<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p>
+<strong>array</strong> or an <strong>object</strong> to the function.  Here is an example using an array:</p>
 
 <code>
 $data = array(<br />
@@ -505,9 +505,9 @@
 <code>
 /*<br />
 &nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $date = 'My Date';<br />
 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
 */<br />
 <br />
@@ -523,7 +523,7 @@
 
 <h2>$this->db->insert_batch();</h2>
 <p>Generates an insert string based on the data you supply, and runs the query. You can either pass an
-<strong>array</strong> or an <strong>object</strong> to the function. Here is an example using an array:</p>
+<strong>array</strong> or an <strong>object</strong> to the function.  Here is an example using an array:</p>
 
 <code>
 $data = array(<br/>
@@ -541,7 +541,7 @@
 <br />
 $this->db->update_batch('mytable', $data);
 <br /><br />
-// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'), ('Another title', 'Another name', 'Another date')</code>
+// Produces: INSERT INTO mytable (title, name, date) VALUES ('My title', 'My name', 'My date'),  ('Another title', 'Another name', 'Another date')</code>
 
 <p>The first parameter will contain the table name, the second is an associative array of values.</p>
 
@@ -588,9 +588,9 @@
 <code>
 /*<br />
 &nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $date = 'My Date';<br />
 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
 */<br />
 <br />
@@ -606,7 +606,7 @@
 <h1>Updating Data</h1>
 
 <h2>$this->db->update();</h2>
-<p>Generates an update string and runs the query based on the data you supply. You can pass an
+<p>Generates an update string and runs the query based on the data you supply.  You can pass an
 <strong>array</strong> or an <strong>object</strong> to the function. Here is an example using
 an array:</p>
 
@@ -630,9 +630,9 @@
 <code>
 /*<br />
 &nbsp;&nbsp;&nbsp;&nbsp;class Myclass {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $title = 'My Title';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $content = 'My Content';<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var $date = 'My Date';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $title = 'My Title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $content = 'My Content';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var  $date = 'My Date';<br />
 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
 */<br />
 <br />
@@ -711,7 +711,7 @@
 
 <h1><a name="chaining">&nbsp;</a>Method Chaining</h1>
 
-<p>Method chaining allows you to simplify your syntax by connecting multiple functions. Consider this example:</p>
+<p>Method chaining allows you to simplify your syntax by connecting multiple functions.  Consider this example:</p>
 
 <code>
 <dfn>$this->db</dfn><kbd>-></kbd><var>select</var>('title')<kbd>-></kbd><var>from</var>('mytable')<kbd>-></kbd><var>where</var>('id', $id)<kbd>-></kbd><var>limit</var>(10, 20);<br />
@@ -752,14 +752,14 @@
 $this-&gt;db-&gt;select('field2');<br />
 $this-&gt;db-&gt;get('tablename');<br />
 <br />
-//Generates: SELECT `field1`, `field2` FROM (`tablename`)<br />
+//Generates:  SELECT `field1`, `field2` FROM (`tablename`)<br />
 <br />
 $this-&gt;db-&gt;flush_cache();<br />
 <br />
 $this-&gt;db-&gt;select('field2');<br />
 $this-&gt;db-&gt;get('tablename');<br />
 <br />
-//Generates: SELECT `field2` FROM (`tablename`)</code></p>
+//Generates:  SELECT `field2` FROM (`tablename`)</code></p>
 
 <p class="important"> <strong>Note:</strong> The following statements can be cached: select, from, join, where, like, group_by, having, order_by, set</p>
 <p>&nbsp;</p>
diff --git a/user_guide/database/caching.html b/user_guide/database/caching.html
index 76a9121..3f4ef2b 100644
--- a/user_guide/database/caching.html
+++ b/user_guide/database/caching.html
@@ -62,7 +62,7 @@
 <p>The Database Caching Class permits you to cache your queries as text files for reduced database load.</p>
 
 <p class="important"><strong>Important:</strong>&nbsp; This class is initialized automatically by the database driver
-when caching is enabled. Do NOT load this class manually.<br /><br />
+when caching is enabled.  Do NOT load this class manually.<br /><br />
 
 <strong>Also note:</strong>&nbsp; Not all query result functions are available when you use caching. Please read this page carefully.</p>
 
@@ -84,12 +84,12 @@
 <p>CodeIgniter's query caching system happens dynamically when your pages are viewed.
 When caching is enabled, the first time a web page is loaded, the query result object will
 be serialized and stored in a text file on your server. The next time the page is loaded the cache file will be used instead of
-accessing your database. Your database usage can effectively be reduced to zero for any pages that have been cached.</p>
+accessing your database.  Your database usage can effectively be reduced to zero for any pages that have been cached.</p>
 
 <p>Only <dfn>read-type</dfn> (SELECT) queries can be cached, since these are the only type of queries that produce a result.
 <dfn>Write-type</dfn> (INSERT, UPDATE, etc.) queries, since they don't generate a result, will not be cached by the system.</p>
 
-<p>Cache files DO NOT expire. Any queries that have been cached will remain cached until you delete them. The caching system
+<p>Cache files DO NOT expire.  Any queries that have been cached will remain cached until you delete them.  The caching system
 permits you clear caches associated with individual pages, or you can delete the entire collection of cache files.
 Typically you'll want to use the housekeeping functions described below to delete cache files after certain
 events take place, like when you've added new information to your database.</p>
@@ -99,33 +99,33 @@
 <p>Getting a performance gain as a result of caching depends on many factors.
 If you have a highly optimized database under very little load, you probably won't see a performance boost.
 If your database is under heavy use you probably will see an improved response, assuming your file-system is not
-overly taxed. Remember that caching simply changes how your information is retrieved, shifting it from being a database
+overly taxed.  Remember that caching simply changes how your information is retrieved, shifting it from being a database
 operation to a file-system one.</p>
 
 <p>In some clustered server environments, for example, caching may be detrimental since file-system operations are so intense.
 On single servers in shared environments, caching will probably be beneficial. Unfortunately there is no
-single answer to the question of whether you should cache your database. It really depends on your situation.</p>
+single answer to the question of whether you should cache your database.  It really depends on your situation.</p>
 
 <h2>How are Cache Files Stored?</h2>
 
-<p>CodeIgniter places the result of EACH query into its own cache file. Sets of cache files are further organized into
-sub-folders corresponding to your controller functions. To be precise, the sub-folders are named identically to the
+<p>CodeIgniter places the result of EACH query into its own cache file.  Sets of cache files are further organized into
+sub-folders corresponding to your controller functions.  To be precise, the sub-folders are named identically to the
 first two segments of your URI (the controller class name and function name).</p>
 
 <p>For example, let's say you have a controller called <dfn>blog</dfn> with a function called <dfn>comments</dfn> that
-contains three queries. The caching system will create a cache folder
+contains three queries.  The caching system will create a cache folder
 called <kbd>blog+comments</kbd>, into which it will write three cache files.</p>
 
 <p>If you use dynamic queries that change based on information in your URI (when using pagination, for example), each instance of
-the query will produce its own cache file. It's possible, therefore, to end up with many times more cache files than you have
+the query will produce its own cache file.  It's possible, therefore, to end up with many times more cache files than you have
 queries.</p>
 
 
 <h2>Managing your Cache Files</h2>
 
-<p>Since cache files do not expire, you'll need to build deletion routines into your application. For example, let's say you have a blog
-that allows user commenting. Whenever a new comment is submitted you'll want to delete the cache files associated with the
-controller function that serves up your comments. You'll find two delete functions described below that help you
+<p>Since cache files do not expire, you'll need to build deletion routines into your application.  For example, let's say you have a blog
+that allows user commenting.  Whenever a new comment is submitted you'll want to delete the cache files associated with the
+controller function that serves up your comments.  You'll find two delete functions described below that help you
 clear data.</p>
 
 
@@ -155,8 +155,8 @@
 
 <h2>$this->db->cache_on()&nbsp; / &nbsp; $this->db->cache_off()</h2>
 
-<p>Manually enables/disables caching. This can be useful if you want to
-keep certain queries from being cached. Example:</p>
+<p>Manually enables/disables caching.  This can be useful if you want to
+keep certain queries from being cached.  Example:</p>
 
 <code>
 // Turn caching on<br />
@@ -177,9 +177,9 @@
 
 <p>Deletes the cache files associated with a particular page. This is useful if you need to clear caching after you update your database.</p>
 
-<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing. For example, if you are viewing
+<p>The caching system saves your cache files to folders that correspond to the URI of the page you are viewing.  For example, if you are viewing
 a page at <dfn>example.com/index.php/blog/comments</dfn>, the caching system will put all cache files associated with it in a folder
-called <dfn>blog+comments</dfn>. To delete those particular cache files you will use:</p>
+called <dfn>blog+comments</dfn>.  To delete those particular cache files you will use:</p>
 
 <code>$this->db->cache_delete('blog', 'comments');</code>
 
@@ -188,7 +188,7 @@
 
 <h2>$this->db->cache_delete_all()</h2>
 
-<p>Clears all existing cache files. Example:</p>
+<p>Clears all existing cache files.  Example:</p>
 
 <code>$this->db->cache_delete_all();</code>
 
diff --git a/user_guide/database/call_function.html b/user_guide/database/call_function.html
index 7f29440..3e0c78d 100644
--- a/user_guide/database/call_function.html
+++ b/user_guide/database/call_function.html
@@ -63,13 +63,13 @@
 
 <p>This function enables you to call PHP database functions that are not natively included in CodeIgniter, in a platform independent manner.
 For example, lets say you want to call the <dfn>mysql_get_client_info()</dfn> function, which is <strong>not</strong> natively supported
-by CodeIgniter. You could do so like this:
+by CodeIgniter.  You could do so like this:
 </p>
 
 <code>$this->db->call_function('<var>get_client_info</var>');</code>
 
-<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter. The prefix is added
-automatically based on which database driver is currently being used. This permits you to run the same function on different database platforms.
+<p>You must supply the name of the function, <strong>without</strong> the <var>mysql_</var> prefix, in the first parameter.  The prefix is added
+automatically based on which database driver is currently being used.  This permits you to run the same function on different database platforms.
 Obviously not all function calls are identical between platforms, so there are limits to how useful this function can be in terms of portability.</p>
 
 <p>Any parameters needed by the function you are calling will be added to the second parameter.</p>
@@ -77,7 +77,7 @@
 <code>$this->db->call_function('<var>some_function</var>', $param1, $param2, etc..);</code>
 
 
-<p>Often, you will either need to supply a database connection ID or a database result ID. The connection ID can be accessed using:</p>
+<p>Often, you will either need to supply a database connection ID or a database result ID.  The connection ID can be accessed using:</p>
 
 <code>$this->db->conn_id;</code>
 
diff --git a/user_guide/database/configuration.html b/user_guide/database/configuration.html
index b347054..51d11c9 100644
--- a/user_guide/database/configuration.html
+++ b/user_guide/database/configuration.html
@@ -74,7 +74,7 @@
 $db['default']['pconnect'] = TRUE;<br />
 $db['default']['db_debug'] = FALSE;<br />
 $db['default']['cache_on'] = FALSE;<br />
-$db['default']['cachedir'] = &quot;&quot;;<br />
+$db['default']['cachedir'] =  &quot;&quot;;<br />
 $db['default']['char_set'] = "utf8";<br />
 $db['default']['dbcollat'] = "utf8_general_ci";<br />
 $db['default']['swap_pre'] = "";<br />
@@ -82,7 +82,7 @@
 $db['default']['stricton'] = FALSE;</code>
 
 <p>The reason we use a multi-dimensional array rather than a more simple one is to permit you to optionally store
-multiple sets of connection values. If, for example, you run multiple environments (development, production, test, etc.)
+multiple sets of connection values.  If, for example,  you run multiple environments (development, production, test, etc.)
 under a single installation, you can set up a connection group for each, then switch between groups as needed.
 For example, to set up a "test" environment you would do this:</p>
 
@@ -95,7 +95,7 @@
 $db['test']['pconnect'] = TRUE;<br />
 $db['test']['db_debug'] = FALSE;<br />
 $db['test']['cache_on'] = FALSE;<br />
-$db['test']['cachedir'] = &quot;&quot;;<br />
+$db['test']['cachedir'] =  &quot;&quot;;<br />
 $db['test']['char_set'] = "utf8";<br />
 $db['test']['dbcollat'] = "utf8_general_ci";<br />
 $db['test']['swap_pre'] = "";<br />
@@ -107,7 +107,7 @@
 
 <code>$active_group = "test";</code>
 
-<p>Note: The name "test" is arbitrary. It can be anything you want. By default we've used the word "default"
+<p>Note: The name "test" is arbitrary.  It can be anything you want. By default we've used the word "default"
 for the primary connection, but it too can be renamed to something more relevant to your project.</p>
 
 <h3>Active Record</h3>
@@ -126,21 +126,21 @@
 <li><strong>password</strong> - The password used to connect to the database.</li>
 <li><strong>database</strong> - The name of the database you want to connect to.</li>
 <li><strong>dbdriver</strong> - The database type. ie: mysql, postgres, odbc, etc. Must be specified in lower case.</li>
-<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries. This permits multiple CodeIgniter installations to share one database.</li>
+<li><strong>dbprefix</strong> - An optional table prefix which will added to the table name when running <a href="active_record.html">Active Record</a> queries.  This permits multiple CodeIgniter installations to share one database.</li>
 <li><strong>pconnect</strong> - TRUE/FALSE (boolean) - Whether to use a persistent connection.</li>
 <li><strong>db_debug</strong> - TRUE/FALSE (boolean) - Whether database errors should be displayed.</li>
 <li><strong>cache_on</strong> - TRUE/FALSE (boolean) - Whether database query caching is enabled, see also <a href="caching.html">Database Caching Class</a>.</li>
 <li><strong>cachedir</strong> - The absolute server path to your database query cache directory.</li>
 <li><strong>char_set</strong> - The character set used in communicating with the database.</li>
-<li><strong>dbcollat</strong> - The character collation used in communicating with the database. <p class="important"><strong>Note:</strong> For MySQL and MySQLi databases, this setting is only used as a backup if your server is running PHP &lt; 5.2.3 or MySQL &lt; 5.0.7. There is an incompatibility in PHP with mysql_real_escape_string() which can make your site vulnerable to SQL injection if you are using a multi-byte character set and are running versions lower than these. Sites using Latin-1 or UTF-8 database character set and collation are unaffected.</p></li>
-<li><strong>swap_pre</strong> - A default table prefix that should be swapped with <var>dbprefix</var>. This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user.</li>
+<li><strong>dbcollat</strong> - The character collation used in communicating with the database. <p class="important"><strong>Note:</strong> For MySQL and MySQLi databases, this setting is only used as a backup if your server is running PHP &lt; 5.2.3 or MySQL &lt; 5.0.7.  There is an incompatibility in PHP with mysql_real_escape_string() which can make your site vulnerable to SQL injection if you are using a multi-byte character set and are running versions lower than these.  Sites using Latin-1 or UTF-8 database character set and collation are unaffected.</p></li>
+<li><strong>swap_pre</strong> - A default table prefix that should be swapped with <var>dbprefix</var>.  This is useful for distributed applications where you might run manually written queries, and need the prefix to still be customizable by the end user.</li>
 <li><strong>autoinit</strong> - Whether or not to automatically connect to the database when the library loads. If set to false, the connection will take place prior to executing the first query.</li>
 <li><strong>stricton</strong> - TRUE/FALSE (boolean) - Whether to force "Strict Mode" connections, good for ensuring strict SQL while developing an application.</li>
-<li><strong>port</strong> - The database port number. To use this value you have to add a line to the database config array.<code>$db['default']['port'] = 5432;</code>
+<li><strong>port</strong> - The database port number.  To use this value you have to add a line to the database config array.<code>$db['default']['port'] =  5432;</code>
 </ul>
 
 <p class="important"><strong>Note:</strong> Depending on what database platform you are using (MySQL, Postgres, etc.)
-not all values will be needed. For example, when using SQLite you will not need to supply a username or password, and
+not all values will be needed.  For example, when using SQLite you will not need to supply a username or password, and
 the database name will be the path to your database file. The information above assumes you are using MySQL.</p>
 
 
diff --git a/user_guide/database/connecting.html b/user_guide/database/connecting.html
index 1a74f55..bb1b401 100644
--- a/user_guide/database/connecting.html
+++ b/user_guide/database/connecting.html
@@ -84,8 +84,8 @@
 
 <ol>
 	<li>The database connection values, passed either as an array or a DSN string.</li>
-	<li>TRUE/FALSE (boolean). Whether to return the connection ID (see Connecting to Multiple Databases below).</li>
-	<li>TRUE/FALSE (boolean). Whether to enable the Active Record class. Set to TRUE by default.</li>
+	<li>TRUE/FALSE (boolean).  Whether to return the connection ID (see Connecting to Multiple Databases below).</li>
+	<li>TRUE/FALSE (boolean).  Whether to enable the Active Record class.  Set to TRUE by default.</li>
 </ol>
 
 
@@ -148,7 +148,7 @@
 <p>By setting the second parameter to TRUE (boolean) the function will return the database object.</p>
 
 <div class="important">
-<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide. In other words, rather than issuing commands with:</p>
+<p>When you connect this way, you will use your object name to issue commands rather than the syntax used throughout this guide.  In other words, rather than issuing commands with:</p>
 
 <p>$this->db->query();<br />$this->db->result();<br /> etc...</p>
 
diff --git a/user_guide/database/examples.html b/user_guide/database/examples.html
index 6bb8beb..535fa31 100644
--- a/user_guide/database/examples.html
+++ b/user_guide/database/examples.html
@@ -61,7 +61,7 @@
 
 <h1>Database Quick Start: Example Code</h1>
 
-<p>The following page contains example code showing how the database class is used. For complete details please
+<p>The following page contains example code showing how the database class is used.  For complete details please
 read the individual pages describing each function.</p>
 
 
@@ -73,7 +73,7 @@
 
 <p>Once loaded the class is ready to be used as described below.</p>
 
-<p>Note: If all your pages require database access you can connect automatically. See the <a href="connecting.html">connecting</a> page for details.</p>
+<p>Note: If all your pages require database access you can connect automatically.  See the <a href="connecting.html">connecting</a> page for details.</p>
 
 
 <h2>Standard Query With Multiple Results (Object Version)</h2>
@@ -90,7 +90,7 @@
 echo 'Total Results: ' . $query->num_rows();
 </code>
 
-<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>. Example: $row->title</p>
+<p>The above <dfn>result()</dfn> function returns an array of <strong>objects</strong>.  Example:  $row->title</p>
 
 
 <h2>Standard Query With Multiple Results (Array Version)</h2>
@@ -104,7 +104,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;echo $row['email'];<br />
 }</code>
 
-<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes. Example: $row['title']</p>
+<p>The above <dfn>result_array()</dfn> function returns an array of standard array indexes.  Example:  $row['title']</p>
 
 
 <h2>Testing for Results</h2>
@@ -137,7 +137,7 @@
 echo $row->name;<br />
 </code>
 
-<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>. Example: $row->name</p>
+<p>The above <dfn>row()</dfn> function returns an <strong>object</strong>.  Example:  $row->name</p>
 
 
 <h2>Standard Query With Single Result (Array version)</h2>
@@ -148,7 +148,7 @@
 echo $row['name'];<br />
 </code>
 
-<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>. Example: $row['name']</p>
+<p>The above <dfn>row_array()</dfn> function returns an <strong>array</strong>.  Example:  $row['name']</p>
 
 
 <h2>Standard Insert</h2>
diff --git a/user_guide/database/fields.html b/user_guide/database/fields.html
index b204361..04d8b80 100644
--- a/user_guide/database/fields.html
+++ b/user_guide/database/fields.html
@@ -92,7 +92,7 @@
 <h2>$this->db->field_exists()</h2>
 
 <p>Sometimes it's helpful to know whether a particular field exists before performing an action.
-Returns a boolean TRUE/FALSE. Usage example:</p>
+Returns a boolean TRUE/FALSE.  Usage example:</p>
 
 <code>
 if ($this->db->field_exists('field_name', 'table_name'))<br />
@@ -101,7 +101,7 @@
 }
 </code>
 
-<p>Note: Replace <em>field_name</em> with the name of the column you are looking for, and replace
+<p>Note:  Replace <em>field_name</em> with the name of the column you are looking for, and replace
 <em>table_name</em> with the name of the table you are looking for.</p>
 
 
diff --git a/user_guide/database/forge.html b/user_guide/database/forge.html
index bbef053..cad2cf2 100644
--- a/user_guide/database/forge.html
+++ b/user_guide/database/forge.html
@@ -151,7 +151,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;),<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
 </code></p>
-<p>After the fields have been defined, they can be added using <dfn>$this-&gt;dbforge-&gt;add_field($fields);</dfn> followed by a call to the <dfn>create_table()</dfn> function.</p>
+<p>After the fields have been defined, they can  be added  using <dfn>$this-&gt;dbforge-&gt;add_field($fields);</dfn> followed by a call to the <dfn>create_table()</dfn> function.</p>
 <h3>$this-&gt;dbforge-&gt;add_field()</h3>
 <p>The add fields function will accept the above array.</p>
 <h3>Passing strings as fields</h3>
@@ -164,7 +164,7 @@
 	// gives id INT(9) NOT NULL AUTO_INCREMENT</code></p>
 <h2><a name="add_key" id="add_key"></a>Adding Keys</h2>
 <p>Generally speaking, you'll want your table to have Keys. This is accomplished with <dfn>$this-&gt;dbforge-&gt;add_key('field')</dfn>. An optional second parameter set to TRUE will make it a primary key. Note that <dfn>add_key()</dfn> must be followed by a call to <dfn>create_table()</dfn>.</p>
-<p>Multiple column non-primary keys must be sent as an array. Sample output below is for MySQL.</p>
+<p>Multiple column non-primary keys must be sent as an array.  Sample output below is for MySQL.</p>
 <p><code>$this-&gt;dbforge-&gt;add_key('blog_id', TRUE);<br />
 	// gives PRIMARY KEY `blog_id` (`blog_id`)<br />
 	<br />
@@ -187,7 +187,7 @@
 <h2><a name="drop_table" id="drop_table"></a>Dropping a table</h2>
 <p>Executes a DROP TABLE sql</p>
 <p><code>$this-&gt;dbforge-&gt;drop_table('table_name');<br />
-	// gives DROP TABLE IF EXISTS table_name</code></p>
+	// gives DROP TABLE IF EXISTS  table_name</code></p>
 <h2><a name="rename_table" id="rename_table"></a>Renaming a table</h2>
 <p>Executes a TABLE rename</p>
 <p><code>$this-&gt;dbforge-&gt;rename_table('old_table_name', 'new_table_name');<br />
@@ -200,7 +200,7 @@
 );<br />
 $this-&gt;dbforge-&gt;add_column('table_name', $fields);<br />
 <br />
-// gives ALTER TABLE table_name ADD  	preferences TEXT</code></p>
+// gives ALTER TABLE table_name ADD   	preferences TEXT</code></p>
 <h2>$this-&gt;dbforge-&gt;drop_column()</h2>
 <p>Used to remove a column from a table. </p>
 <p><code>$this-&gt;dbforge-&gt;drop_column('table_name', 'column_to_drop');</code></p>
@@ -214,7 +214,7 @@
 );<br />
 $this-&gt;dbforge-&gt;modify_column('table_name', $fields);<br />
 	<br />
-	// gives ALTER TABLE table_name CHANGE  	old_name new_name TEXT </code></p>
+	// gives ALTER TABLE table_name CHANGE   	old_name new_name TEXT </code></p>
 <p>&nbsp;</p>
 </div>
 <!-- END CONTENT -->
diff --git a/user_guide/database/helpers.html b/user_guide/database/helpers.html
index 650dd7a..107d2ed 100644
--- a/user_guide/database/helpers.html
+++ b/user_guide/database/helpers.html
@@ -67,12 +67,12 @@
 
 <h2>$this->db->affected_rows()</h2>
 <p>Displays the number of affected rows, when doing "write" type queries (insert, update, etc.).</p>
-<p>Note: In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the
-correct number of affected rows. By default this hack is enabled but it can be turned off in the database driver file.</p>
+<p>Note:  In MySQL "DELETE FROM TABLE" returns 0 affected rows. The database class has a small hack that allows it to return the
+correct number of affected rows.  By default this hack is enabled but it can be turned off in the database driver file.</p>
 
 
 <h2>$this->db->count_all();</h2>
-<p>Permits you to determine the number of rows in a particular table. Submit the table name in the first parameter. Example:</p>
+<p>Permits you to determine the number of rows in a particular table.  Submit the table name in the first parameter. Example:</p>
 <code>echo $this->db->count_all('<var>my_table</var>');<br />
 <br />
 // Produces an integer, like 25
@@ -90,11 +90,11 @@
 
 
 <h2>$this->db->last_query();</h2>
-<p>Returns the last query that was run (the query string, not the result). Example:</p>
+<p>Returns the last query that was run (the query string, not the result).  Example:</p>
 
 <code>$str = $this->db->last_query();<br />
 <br />
-// Produces: SELECT * FROM sometable....
+// Produces:  SELECT * FROM sometable....
 </code>
 
 
@@ -109,7 +109,7 @@
 $str = $this->db->insert_string('table_name', $data);
 </code>
 
-<p>The first parameter is the table name, the second is an associative array with the data to be inserted. The above example produces:</p>
+<p>The first parameter is the table name, the second is an associative array with the data to be inserted.  The above example produces:</p>
 <code>INSERT INTO table_name (name, email, url) VALUES ('Rick', 'rick@example.com', 'example.com')</code>
 
 <p class="important">Note: Values are automatically escaped, producing safer queries.</p>
diff --git a/user_guide/database/index.html b/user_guide/database/index.html
index 594de80..fa3548c 100644
--- a/user_guide/database/index.html
+++ b/user_guide/database/index.html
@@ -63,7 +63,7 @@
 structures and Active Record patterns. The database functions offer clear, simple syntax.</p>
 
 	<ul>
-		<li><a href="examples.html">Quick Start: Usage Examples</a></li>
+		<li><a href="examples.html">Quick Start:  Usage Examples</a></li>
 		<li><a href="configuration.html">Database Configuration</a></li>
 		<li><a href="connecting.html">Connecting to a Database</a></li>
 		<li><a href="queries.html">Running Queries</a></li>
diff --git a/user_guide/database/queries.html b/user_guide/database/queries.html
index 685da43..f9f9680 100644
--- a/user_guide/database/queries.html
+++ b/user_guide/database/queries.html
@@ -68,14 +68,14 @@
 <code>$this->db->query('YOUR QUERY HERE');</code>
 
 <p>The <dfn>query()</dfn> function returns a database result <strong>object</strong> when "read" type queries are run,
-which you can use to <a href="results.html">show your results</a>. When "write" type queries are run it simply returns TRUE or FALSE
-depending on success or failure. When retrieving data you will typically assign the query to your own variable, like this:</p>
+which you can use to <a href="results.html">show your results</a>.  When "write" type queries are run it simply returns TRUE or FALSE
+depending on success or failure.  When retrieving data you will typically assign the query to your own variable, like this:</p>
 
 <code><var>$query</var> = $this->db->query('YOUR QUERY HERE');</code>
 
 <h2>$this->db->simple_query();</h2>
 
-<p>This is a simplified version of the <dfn>$this->db->query()</dfn> function. It ONLY returns TRUE/FALSE on success or failure.
+<p>This is a simplified version of the <dfn>$this->db->query()</dfn> function.  It ONLY returns TRUE/FALSE on success or failure.
 It DOES NOT return a database result set, nor does it set the query timer, or compile bind data, or store your query for debugging.
 It simply lets you submit a query. Most users will rarely use this function.</p>
 
@@ -100,16 +100,16 @@
 
 <ol>
 <li><strong>$this->db->escape()</strong> This function determines the data type so that it
-can escape only string data. It also automatically adds single quotes around the data so you don't have to:
+can escape only string data.  It also automatically adds single quotes around the data so you don't have to:
 
 <code>$sql = "INSERT INTO table (title) VALUES(".$this->db->escape($title).")";</code></li>
 
-<li><strong>$this->db->escape_str()</strong> This function escapes the data passed to it, regardless of type.
+<li><strong>$this->db->escape_str()</strong>  This function escapes the data passed to it, regardless of type.
 Most of the time you'll use the above function rather than this one. Use the function like this:
 
 <code>$sql = "INSERT INTO table (title) VALUES('".$this->db->escape_str($title)."')";</code></li>
 
-<li><strong>$this->db->escape_like_str()</strong> This method should be used when strings are to be used in LIKE
+<li><strong>$this->db->escape_like_str()</strong>  This method should be used when strings are to be used in LIKE
 conditions so that LIKE wildcards ('%', '_') in the string are also properly escaped.
 
 <code>$search = '20% raise';<br />
@@ -130,7 +130,7 @@
 </code>
 
 <p>The question marks in the query are automatically replaced with the values in the array in the second parameter of the query function.</p>
-<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries. You don't have to remember to manually escape data; the engine does it automatically for you.</p>
+<p class="important">The secondary benefit of using binds is that the values are automatically escaped, producing safer queries.  You don't have to remember to manually escape data; the engine does it automatically for you.</p>
 
 
 
diff --git a/user_guide/database/results.html b/user_guide/database/results.html
index 0b82752..8ad6a19 100644
--- a/user_guide/database/results.html
+++ b/user_guide/database/results.html
@@ -112,7 +112,7 @@
 
 	<h2>result_array()</h2>
 
-	<p>This function returns the query result as a pure array, or an empty array when no result is produced. Typically you'll use this in a foreach loop, like this:</p>
+	<p>This function returns the query result as a pure array, or an empty array when no result is produced.  Typically you'll use this in a foreach loop, like this:</p>
 	<code>
 	$query = $this->db->query("YOUR QUERY");<br />
 	<br />
@@ -126,8 +126,8 @@
 
 	<h2>row()</h2>
 
-	<p>This function returns a single result row. If your query has more than one row, it returns only the first row.
-	The result is returned as an <strong>object</strong>. Here's a usage example:</p>
+	<p>This function returns a single result row.  If your query has more than one row, it returns only the first row.
+	The result is returned as an <strong>object</strong>.  Here's a usage example:</p>
 	<code>
 	$query = $this->db->query("YOUR QUERY");<br />
 	<br />
@@ -157,7 +157,7 @@
 
 	<h2>row_array()</h2>
 
-	<p>Identical to the above <var>row()</var> function, except it returns an array. Example:</p>
+	<p>Identical to the above <var>row()</var> function, except it returns an array.  Example:</p>
 
 	<code>
 	$query = $this->db->query("YOUR QUERY");<br />
@@ -209,7 +209,7 @@
 </code>
 
 <h2>$query->num_fields()</h2>
-<p>The number of FIELDS (columns) returned by the query. Make sure to call the function using your query result object:</p>
+<p>The number of FIELDS (columns) returned by the query.  Make sure to call the function using your query result object:</p>
 
 <code>$query = $this->db->query('SELECT * FROM my_table');<br /><br />
 echo $query->num_fields();
@@ -218,9 +218,9 @@
 
 
 <h2>$query->free_result()</h2>
-<p>It frees the memory associated with the result and deletes the result resource ID. Normally PHP frees its memory automatically at the end of script
-execution. However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been
-generated in order to cut down on memory consumptions. Example:
+<p>It frees the memory associated with the result and deletes the result resource ID.  Normally PHP frees its memory automatically at the end of script
+execution.  However, if you are running a lot of queries in a particular script you might want to free the result after each query result has been
+generated in order to cut down on memory consumptions.  Example:
 </p>
 
 <code>$query = $this->db->query('SELECT title FROM my_table');<br /><br />
@@ -228,12 +228,12 @@
 {<br />
 &nbsp;&nbsp;&nbsp;echo $row->title;<br />
 }<br />
-$query->free_result(); // The $query result object will no longer be available<br />
+$query->free_result();  // The $query result object will no longer be available<br />
 <br />
 $query2 = $this->db->query('SELECT name FROM some_table');<br /><br />
 $row = $query2->row();<br />
 echo $row->name;<br />
-$query2->free_result(); // The $query2 result object will no longer be available
+$query2->free_result();  // The $query2 result object will no longer be available
 </code>
 
 
diff --git a/user_guide/database/table_data.html b/user_guide/database/table_data.html
index 631e3b9..a2aaa99 100644
--- a/user_guide/database/table_data.html
+++ b/user_guide/database/table_data.html
@@ -65,7 +65,7 @@
 
 <h2>$this->db->list_tables();</h2>
 
-<p>Returns an array containing the names of all the tables in the database you are currently connected to. Example:</p>
+<p>Returns an array containing the names of all the tables in the database you are currently connected to.  Example:</p>
 
 <code>$tables = $this->db->list_tables();<br />
 <br />
@@ -79,7 +79,7 @@
 <h2>$this->db->table_exists();</h2>
 
 <p>Sometimes it's helpful to know whether a particular table exists before running an operation on it.
-Returns a boolean TRUE/FALSE. Usage example:</p>
+Returns a boolean TRUE/FALSE.  Usage example:</p>
 
 <code>
 if ($this->db->table_exists('table_name'))<br />
@@ -88,7 +88,7 @@
 }
 </code>
 
-<p>Note: Replace <em>table_name</em> with the name of the table you are looking for.</p>
+<p>Note:  Replace <em>table_name</em> with the name of the table you are looking for.</p>
 
 
 
diff --git a/user_guide/database/transactions.html b/user_guide/database/transactions.html
index 68d76df..74945d4 100644
--- a/user_guide/database/transactions.html
+++ b/user_guide/database/transactions.html
@@ -61,18 +61,18 @@
 
 <h1>Transactions</h1>
 
-<p>CodeIgniter's database abstraction allows you to use <dfn>transactions</dfn> with databases that support transaction-safe table types. In MySQL, you'll need
-to be running InnoDB or BDB table types rather than the more common MyISAM. Most other database platforms support transactions natively.</p>
+<p>CodeIgniter's database abstraction allows you to use <dfn>transactions</dfn> with databases that support transaction-safe table types.  In MySQL, you'll need
+to be running InnoDB or BDB table types rather than the more common MyISAM.  Most other database platforms support transactions natively.</p>
 
 <p>If you are not familiar with
-transactions we recommend you find a good online resource to learn about them for your particular database. The information below assumes you
+transactions we recommend you find a good online resource to learn about them for your particular database.  The information below assumes you
 have a basic understanding of transactions.
 </p>
 
 <h2>CodeIgniter's Approach to Transactions</h2>
 
-<p>CodeIgniter utilizes an approach to transactions that is very similar to the process used by the popular database class ADODB. We've chosen that approach
-because it greatly simplifies the process of running transactions. In most cases all that is required are two lines of code.</p>
+<p>CodeIgniter utilizes an approach to transactions that is very similar to the process used by the popular database class ADODB.  We've chosen that approach
+because it greatly simplifies the process of running transactions.  In most cases all that is required are two lines of code.</p>
 
 <p>Traditionally, transactions have required a fair amount of work to implement since they demand that you to keep track of your queries
 and determine whether to <dfn>commit</dfn> or <dfn>rollback</dfn> based on the success or failure of your queries. This is particularly cumbersome with
@@ -98,7 +98,7 @@
 
 <h2>Strict Mode</h2>
 
-<p>By default CodeIgniter runs all transactions in <dfn>Strict Mode</dfn>. When strict mode is enabled, if you are running multiple groups of
+<p>By default CodeIgniter runs all transactions in <dfn>Strict Mode</dfn>.  When strict mode is enabled, if you are running multiple groups of
 transactions, if one group fails all groups will be rolled back. If strict mode is disabled, each group is treated independently, meaning
 a failure of one group will not affect any others.</p>
 
@@ -127,7 +127,7 @@
 
 <h2>Enabling Transactions</h2>
 
-<p>Transactions are enabled automatically the moment you use <dfn>$this->db->trans_start()</dfn>. If you would like to disable transactions you
+<p>Transactions are enabled automatically the moment you use <dfn>$this->db->trans_start()</dfn>.  If you would like to disable transactions you
 can do so using <dfn>$this->db->trans_off()</dfn>:</p>
 
 <code>
diff --git a/user_guide/database/utilities.html b/user_guide/database/utilities.html
index ec45f26..c488180 100644
--- a/user_guide/database/utilities.html
+++ b/user_guide/database/utilities.html
@@ -105,7 +105,7 @@
 <h2><a name="exists"></a>$this->dbutil->database_exists();</h2>
 
 <p>Sometimes it's helpful to know whether a particular database exists.
-Returns a boolean TRUE/FALSE. Usage example:</p>
+Returns a boolean TRUE/FALSE.  Usage example:</p>
 
 <code>
 if ($this->dbutil->database_exists('database_name'))<br />
@@ -114,7 +114,7 @@
 }
 </code>
 
-<p>Note: Replace <em>database_name</em> with the name of the table you are looking for. This function is case sensitive.</p>
+<p>Note:  Replace <em>database_name</em> with the name of the table you are looking for. This function is case sensitive.</p>
 
 
 
@@ -184,7 +184,7 @@
 </code>
 
 <p>The second and third parameters allows you to
-set the delimiter and newline character. By default tabs are used as the delimiter and "\n" is used as a new line. Example:</p>
+set the delimiter and newline character.  By default tabs are used as the delimiter and "\n" is used as a new line.  Example:</p>
 
 <code>
 $delimiter = ",";<br />
@@ -193,14 +193,14 @@
 echo $this->dbutil->csv_from_result($query, $delimiter, $newline);
 </code>
 
-<p><strong>Important:</strong>&nbsp; This function will NOT write the CSV file for you. It simply creates the CSV layout.
+<p><strong>Important:</strong>&nbsp; This function will NOT write the CSV file for you.  It simply creates the CSV layout.
 If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p>
 
 
 <h2><a name="xml"></a>$this->dbutil->xml_from_result($db_result)</h2>
 
 <p>Permits you to generate an XML file from a query result. The first parameter expects a query result object, the second
-may contain an optional array of config parameters. Example:</p>
+may contain an optional array of config parameters.  Example:</p>
 
 <code>
 $this->load->dbutil();<br />
@@ -217,18 +217,18 @@
 echo $this->dbutil->xml_from_result($query, $config);
 </code>
 
-<p><strong>Important:</strong>&nbsp; This function will NOT write the XML file for you. It simply creates the XML layout.
+<p><strong>Important:</strong>&nbsp; This function will NOT write the XML file for you.  It simply creates the XML layout.
 If you need to write the file use the <a href="../helpers/file_helper.html">File Helper</a>.</p>
 
 
 <h2><a name="backup"></a>$this->dbutil->backup()</h2>
 
-<p>Permits you to backup your full database or individual tables. The backup data can be compressed in either Zip or Gzip format.</p>
+<p>Permits you to backup your full database or individual tables.  The backup data can be compressed in either Zip or Gzip format.</p>
 
 <p class="important"><strong>Note:</strong>&nbsp; This features is only available for MySQL databases.</p>
 
 <p>Note: Due to the limited execution time and memory available to PHP, backing up very large
-databases may not be possible. If your database is very large you might need to backup directly from your SQL server
+databases may not be possible.  If your database is very large you might need to backup directly from your SQL server
 via the command line, or have your server admin do it for you if you do not have root privileges.</p>
 
 <h3>Usage Example</h3>
@@ -278,7 +278,7 @@
 <th>Options</th>
 <th>Description</th>
 </tr><tr>
-<td class="td"><strong>tables</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want backed up. If left blank all tables will be exported.</td>
+<td class="td"><strong>tables</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want backed up.  If left blank all tables will be exported.</td>
 </tr><tr>
 <td class="td"><strong>ignore</strong></td><td class="td">empty array</td><td class="td">None</td><td class="td">An array of tables you want the backup routine to ignore.</td>
 </tr><tr>
diff --git a/user_guide/doc_style/template.html b/user_guide/doc_style/template.html
index e255032..d59d5e4 100644
--- a/user_guide/doc_style/template.html
+++ b/user_guide/doc_style/template.html
@@ -51,7 +51,7 @@
 
 <h1>Foo Class</h1>
 
-<p>Brief description of Foo Class. If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.</p>
+<p>Brief description of Foo Class.  If it extends a native CodeIgniter class, please link to the class in the CodeIgniter documents here.</p>
 
 <p class="important"><strong>Important:</strong>&nbsp; This is an important note with <kbd>EMPHASIS</kbd>.</p>
 
diff --git a/user_guide/general/alternative_php.html b/user_guide/general/alternative_php.html
index 574ab35..abd5845 100644
--- a/user_guide/general/alternative_php.html
+++ b/user_guide/general/alternative_php.html
@@ -58,19 +58,19 @@
 <h1>Alternate PHP Syntax for View Files</h1>
 
 <p>If you do not utilize CodeIgniter's <a href="../libraries/parser.html">template engine</a>, you'll be using pure PHP
-in your View files. To minimize the PHP code in these files, and to make it easier to identify the code blocks it is recommended that you use
-PHPs alternative syntax for control structures and short tag echo statements. If you are not familiar with this syntax, it allows you to eliminate the braces from your code,
+in your View files.  To minimize the PHP code in these files, and to make it easier to identify the code blocks it is recommended that you use
+PHPs alternative syntax for control structures and short tag echo statements.  If you are not familiar with this syntax, it allows you to eliminate the braces from your code,
 and eliminate "echo" statements.</p>
 
 <h2>Automatic Short Tag Support</h2>
 
 <p><strong>Note:</strong> If you find that the syntax described in this page does not work on your server it might
 be that "short tags" are disabled in your PHP ini file. CodeIgniter will optionally rewrite short tags on-the-fly,
-allowing you to use that syntax even if your server doesn't support it. This feature can be enabled in your
+allowing you to use that syntax even if your server doesn't support it.  This feature can be enabled in your
 <dfn>config/config.php</dfn> file.</p>
 
 <p class="important">Please note that if you do use this feature, if PHP errors are encountered
-in your <strong>view files</strong>, the error message and line number will not be accurately shown. Instead, all errors
+in your <strong>view files</strong>, the error message and line number will not be accurately shown.  Instead, all errors
 will be shown as <kbd>eval()</kbd> errors.</p>
 
 
@@ -89,7 +89,7 @@
 <h2>Alternative Control Structures</h2>
 
 <p>Controls structures, like <var>if</var>, <var>for</var>, <var>foreach</var>, and <var>while</var> can be
-written in a simplified format as well. Here is an example using foreach:</p>
+written in a simplified format as well.  Here is an example using foreach:</p>
 
 <code>
 &lt;ul><br />
@@ -102,14 +102,14 @@
 <br />
 &lt;/ul></code>
 
-<p>Notice that there are no braces. Instead, the end brace is replaced with <var>endforeach</var>.
+<p>Notice that there are no braces.  Instead, the end brace is replaced with <var>endforeach</var>.
 Each of the control structures listed above has a similar closing syntax:
 <var>endif</var>, <var>endfor</var>, <var>endforeach</var>, and <var>endwhile</var></p>
 
-<p>Also notice that instead of using a semicolon after each structure (except the last one), there is a colon. This is
+<p>Also notice that instead of using a semicolon after each structure (except the last one), there is a colon.  This is
 important!</p>
 
-<p>Here is another example, using if/elseif/else. Notice the colons:</p>
+<p>Here is another example, using if/elseif/else.  Notice the colons:</p>
 
 
 <code><var>&lt;?php if ($username == 'sally'): ?></var><br />
diff --git a/user_guide/general/autoloader.html b/user_guide/general/autoloader.html
index 405dda3..fae0b5f 100644
--- a/user_guide/general/autoloader.html
+++ b/user_guide/general/autoloader.html
@@ -75,7 +75,7 @@
 loaded to the <samp>autoload</samp> array. You'll find instructions in that file corresponding to each
 type of item.</p>
 
-<p class="important"><strong>Note:</strong> Do not include the file extension (.php) when adding items to the autoload array.</p>
+<p class="important"><strong>Note:</strong>  Do not include the file extension (.php) when adding items to the autoload array.</p>
 
 
 
diff --git a/user_guide/general/caching.html b/user_guide/general/caching.html
index abfe6de..c77f9a1 100644
--- a/user_guide/general/caching.html
+++ b/user_guide/general/caching.html
@@ -68,8 +68,8 @@
 <h2>How Does Caching Work?</h2>
 
 <p>Caching can be enabled on a per-page basis, and you can set the length of time that a page should remain cached before being refreshed.
-When a page is loaded for the first time, the cache file will be written to your <dfn>application/cache</dfn> folder. On subsequent page loads the cache file will be retrieved
-and sent to the requesting user's browser. If it has expired, it will be deleted and refreshed before being sent to the browser.</p>
+When a page is loaded for the first time, the cache file will be written to your <dfn>application/cache</dfn> folder.  On subsequent page loads the cache file will be retrieved
+and sent to the requesting user's browser.  If it has expired, it will be deleted and refreshed before being sent to the browser.</p>
 
 <p>Note: The Benchmark tag is not cached so you can still view your page load speed when caching is enabled.</p>
 
@@ -90,8 +90,8 @@
 
 <h2>Deleting Caches</h2>
 
-<p>If you no longer wish to cache a file you can remove the caching tag and it will no longer be refreshed when it expires. Note:
-Removing the tag will not delete the cache immediately. It will have to expire normally. If you need to remove it earlier you
+<p>If you no longer wish to cache a file you can remove the caching tag and it will no longer be refreshed when it expires.  Note:
+Removing the tag will not delete the cache immediately.  It will have to expire normally.  If you need to remove it earlier you
 will need to manually delete it from your cache folder.</p>
 
 
diff --git a/user_guide/general/common_functions.html b/user_guide/general/common_functions.html
index 3c7a5df..bfac326 100644
--- a/user_guide/general/common_functions.html
+++ b/user_guide/general/common_functions.html
@@ -68,7 +68,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;$str = quoted_printable_encode($str);<br />
 }</code>
 
-<p>Returns boolean <kbd>TRUE</kbd> if the installed version of PHP is equal to or greater than the supplied version number. Returns <kbd>FALSE</kbd> if the installed version of PHP is lower than the supplied version number.</p>
+<p>Returns boolean <kbd>TRUE</kbd> if the installed version of PHP is equal to or greater than the supplied version number.  Returns  <kbd>FALSE</kbd> if the installed version of PHP is lower than the supplied version number.</p>
 
 
 <h2>is_really_writable('<var>path/to/file</var>')</h2>
@@ -92,10 +92,10 @@
 
 <h2>set_status_header(<var>code</var>, '<var>text</var>');</h2>
 
-<p>Permits you to manually set a server status header. Example:</p>
+<p>Permits you to manually set a server status header.  Example:</p>
 
 <code>set_status_header(401);<br />
-// Sets the header as: Unauthorized</code>
+// Sets the header as:  Unauthorized</code>
 
 <p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p>
 
diff --git a/user_guide/general/controllers.html b/user_guide/general/controllers.html
index 01ef3d1..c909164 100644
--- a/user_guide/general/controllers.html
+++ b/user_guide/general/controllers.html
@@ -91,7 +91,7 @@
 <a name="hello"></a>
 <h2>Let's try it:&nbsp; Hello World!</h2>
 
-<p>Let's create a simple controller so you can see it in action. Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p>
+<p>Let's create a simple controller so you can see it in action.  Using your text editor, create a file called <dfn>blog.php</dfn>, and put the following code in it:</p>
 
 
 <textarea class="textarea" style="width:100%" cols="50" rows="10">
@@ -116,7 +116,7 @@
 
 <p>If you did it right, you should see <samp>Hello World!</samp>.</p>
 
-<p>Note: Class names must start with an uppercase letter. In other words, this is valid:</p>
+<p>Note: Class names must start with an uppercase letter.  In other words, this is valid:</p>
 
 <code>&lt;?php<br />
 class <var>Blog</var> extends CI_Controller {<br />
@@ -139,14 +139,14 @@
 <a name="functions"></a>
 <h2>Functions</h2>
 
-<p>In the above example the function name is <dfn>index()</dfn>. The "index" function is always loaded by default if the
-<strong>second segment</strong> of the URI is empty. Another way to show your "Hello World" message would be this:</p>
+<p>In the above example the function name is <dfn>index()</dfn>.  The "index" function is always loaded by default if the
+<strong>second segment</strong> of the URI is empty.  Another way to show your "Hello World" message would be this:</p>
 
 <code>example.com/index.php/<var>blog</var>/<samp>index</samp>/</code>
 
 <p><strong>The second segment of the URI determines which function in the controller gets called.</strong></p>
 
-<p>Let's try it. Add a new function to your controller:</p>
+<p>Let's try it.  Add a new function to your controller:</p>
 
 
 <textarea class="textarea" style="width:100%" cols="50" rows="15">
@@ -204,7 +204,7 @@
 <h2>Defining a Default Controller</h2>
 
 <p>CodeIgniter can be told to load a default controller when a URI is not present,
-as will be the case when only your site root URL is requested. To specify a default controller, open
+as will be the case when only your site root URL is requested.  To specify a default controller, open
 your <dfn>application/config/routes.php</dfn> file and set this variable:</p>
 
 <code>$route['default_controller'] = '<var>Blog</var>';</code>
@@ -226,7 +226,7 @@
 }</code>
 
 <p class="important"><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_remap()</kbd>, it will <strong>always</strong>
-get called regardless of what your URI contains. It overrides the normal behavior in which the URI determines which function is called,
+get called regardless of what your URI contains.  It overrides the normal behavior in which the URI determines which function is called,
 allowing you to define your own function routing rules.</p>
 
 <p>The overridden function call (typically the second segment of the URI) will be passed as a parameter to the <kbd>_remap()</kbd> function:</p>
@@ -259,9 +259,9 @@
 <a name="output"></a>
 <h2>Processing Output</h2>
 
-<p>CodeIgniter has an output class that takes care of sending your final rendered data to the web browser automatically. More information on this can be found in the
-<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages. In some cases, however, you might want to
-post-process the finalized data in some way and send it to the browser yourself. CodeIgniter permits you to
+<p>CodeIgniter has an output class that takes care of sending your final rendered data to the web browser automatically.  More information on this can be found in the
+<a href="views.html">Views</a> and <a href="../libraries/output.html">Output class</a> pages.  In some cases, however, you might want to
+post-process the finalized data in some way and send it to the browser yourself.  CodeIgniter permits you to
 add a function named <dfn>_output()</dfn> to your controller that will receive the finalized output data.</p>
 
 <p><strong>Important:</strong>&nbsp; If your controller contains a function named <kbd>_output()</kbd>, it will <strong>always</strong>
@@ -275,7 +275,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;echo $output;<br />
 }</code>
 
-<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state. Benchmark and memory usage data will be rendered,
+<p class="important">Please note that your <dfn>_output()</dfn> function will receive the data in its finalized state.  Benchmark and memory usage data will be rendered,
 cache files written (if you have caching enabled), and headers will be sent (if you use that <a href="../libraries/output.html">feature</a>)
 before it is handed off to the _output() function.<br />
 <br />
@@ -287,14 +287,14 @@
 }</code>
 
 If you are using this feature the page execution timer and memory usage stats might not be perfectly accurate
-since they will not take into acccount any further processing you do. For an alternate way to control output <em>before</em> any of the final processing is done, please see
+since they will not take into acccount any further processing you do.  For an alternate way to control output <em>before</em> any of the final processing is done, please see
 the available methods in the <a href="../libraries/output.html">Output Class</a>.</p>
 
 <a name="private"></a>
 <h2>Private Functions</h2>
 
 
-<p>In some cases you may want certain functions hidden from public access. To make a function private, simply add an
+<p>In some cases you may want certain functions hidden from public access.  To make a function private, simply add an
 underscore as the name prefix and it will not be served via a URL request. For example, if you were to have a function like this:</p>
 
 <code>
@@ -312,11 +312,11 @@
 <a name="subfolders"></a>
 <h2>Organizing Your Controllers into Sub-folders</h2>
 
-<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders. CodeIgniter permits you to do this.</p>
+<p>If you are building a large application you might find it convenient to organize your controllers into sub-folders.  CodeIgniter permits you to do this.</p>
 
 <p>Simply create folders within your <dfn>application/controllers</dfn> directory and place your controller classes within them.</p>
 
-<p><strong>Note:</strong>&nbsp; When using this feature the first segment of your URI must specify the folder. For example, lets say you have a controller
+<p><strong>Note:</strong>&nbsp; When using this feature the first segment of your URI must specify the folder.  For example, lets say you have a controller
 located here:</p>
 
 <code>application/controllers/<kbd>products</kbd>/shoes.php</code>
@@ -326,7 +326,7 @@
 <code>example.com/index.php/products/shoes/show/123</code>
 
 <p>Each of your sub-folders may contain a default controller which will be
-called if the URL contains only the sub-folder. Simply name your default controller as specified in your
+called if the URL contains only the sub-folder.  Simply name your default controller as specified in your
 <dfn>application/config/routes.php</dfn> file</p>
 
 
diff --git a/user_guide/general/core_classes.html b/user_guide/general/core_classes.html
index e5521b4..51c2c74 100644
--- a/user_guide/general/core_classes.html
+++ b/user_guide/general/core_classes.html
@@ -111,12 +111,12 @@
 <h2>Extending Core Class</h2>
 
 <p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then
-it's overkill to replace the entire library with your version. In this case it's better to simply extend the class.
+it's overkill to replace the entire library with your version.  In this case it's better to simply extend the class.
 Extending a class is nearly identical to replacing a class with a couple exceptions:</p>
 
 <ul>
 <li>The class declaration must extend the parent class.</li>
-<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li>
+<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable.  See below.).</li>
 </ul>
 
 <p>For example, to extend the native <kbd>Input</kbd> class you'll create a file named <dfn>application/core/</dfn><kbd>MY_Input.php</kbd>, and declare your class with:</p>
diff --git a/user_guide/general/creating_libraries.html b/user_guide/general/creating_libraries.html
index a44ec47..8198c18 100644
--- a/user_guide/general/creating_libraries.html
+++ b/user_guide/general/creating_libraries.html
@@ -58,7 +58,7 @@
 <h1>Creating Libraries</h1>
 
 <p>When we use the term "Libraries" we are normally referring to the classes that are located in the <kbd>libraries</kbd>
-directory and described in the Class Reference of this user guide. In this case, however, we will instead describe how you can create
+directory and described in the Class Reference of this user guide.  In this case, however, we will instead describe how you can create
 your own libraries within your <dfn>application/libraries</dfn> directory in order to maintain separation between your local resources
 and the global framework resources.</p>
 
@@ -75,7 +75,7 @@
 
 <p>The page below explains these three concepts in detail.</p>
 
-<p class="important"><strong>Note:</strong> The Database classes can not be extended or replaced with your own classes. All other classes are able to be replaced/extended.</p>
+<p class="important"><strong>Note:</strong> The Database classes can not be extended or replaced with your own classes.  All other classes are able to be replaced/extended.</p>
 
 
 <h2>Storage</h2>
@@ -88,16 +88,16 @@
 
 <ul>
 <li>File names must be capitalized. For example:&nbsp; <dfn>Myclass.php</dfn></li>
-<li>Class declarations must be capitalized. For example:&nbsp; <kbd>class Myclass</kbd></li>
+<li>Class declarations must be capitalized. For example:&nbsp;  <kbd>class Myclass</kbd></li>
 <li>Class names and file names must match.</li>
 </ul>
 
 
 <h2>The Class File</h2>
 
-<p>Classes should have this basic prototype (Note: We are using the name <kbd>Someclass</kbd> purely as an example):</p>
+<p>Classes should have this basic prototype (Note:  We are using the name <kbd>Someclass</kbd> purely as an example):</p>
 
-<code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');
+<code>&lt;?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');
 <br /><br />
 class Someclass {<br />
 <br />
@@ -136,7 +136,7 @@
 
 <p>If you use this feature you must set up your class constructor to expect data:</p>
 
-<code>&lt;?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br />
+<code>&lt;?php  if ( ! defined('BASEPATH')) exit('No direct script access allowed');<br />
 <br />
 class Someclass {<br />
 <br />
@@ -147,8 +147,8 @@
 }<br /><br />
 ?&gt;</code>
 
-<p class="important">You can also pass parameters stored in a config file. Simply create a config file named identically to the class <kbd>file name</kbd>
-and store it in your <dfn>application/config/</dfn> folder. Note that if you dynamically pass parameters as described above,
+<p class="important">You can also pass parameters stored in a config file.  Simply create a config file named identically to the class <kbd>file name</kbd>
+and store it in your <dfn>application/config/</dfn> folder.  Note that if you dynamically pass parameters as described above,
 the config file option will not be available.</p>
 
 
@@ -202,7 +202,7 @@
 <h2>Replacing Native Libraries with Your Versions</h2>
 
 <p>Simply by naming your class files identically to a native library will cause CodeIgniter to use it instead of the native one. To use this
-feature you must name the file and the class declaration exactly the same as the native library. For example, to replace the native <kbd>Email</kbd> library
+feature you must name the file and the class declaration exactly the same as the native library.  For example, to replace the native <kbd>Email</kbd> library
 you'll create a file named <dfn>application/libraries/Email.php</dfn>, and declare your class with:</p>
 
 <code>
@@ -222,12 +222,12 @@
 <h2>Extending Native Libraries</h2>
 
 <p>If all you need to do is add some functionality to an existing library - perhaps add a function or two - then
-it's overkill to replace the entire library with your version. In this case it's better to simply extend the class.
+it's overkill to replace the entire library with your version.  In this case it's better to simply extend the class.
 Extending a class is nearly identical to replacing a class with a couple exceptions:</p>
 
 <ul>
 <li>The class declaration must extend the parent class.</li>
-<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</li>
+<li>Your new class name and filename must be prefixed with <kbd>MY_</kbd> (this item is configurable.  See below.).</li>
 </ul>
 
 <p>For example, to extend the native <kbd>Email</kbd> class you'll create a file named <dfn>application/libraries/</dfn><kbd>MY_Email.php</kbd>, and declare your class with:</p>
@@ -252,12 +252,12 @@
 
 <h3>Loading Your Sub-class</h3>
 
-<p>To load your sub-class you'll use the standard syntax normally used. DO NOT include your prefix. For example,
+<p>To load your sub-class you'll use the standard syntax normally used.  DO NOT include your prefix.  For example,
 to load the example above, which extends the Email class, you will use:</p>
 
 <code>$this->load->library('<kbd>email</kbd>');</code>
 
-<p>Once loaded you will use the class variable as you normally would for the class you are extending. In the case of
+<p>Once loaded you will use the class variable as you normally would for the class you are extending.  In the case of
 the email class all calls will use:</p>
 
 
diff --git a/user_guide/general/credits.html b/user_guide/general/credits.html
index 64b72c4..9e0fbac 100644
--- a/user_guide/general/credits.html
+++ b/user_guide/general/credits.html
@@ -58,7 +58,7 @@
 <h1>Credits</h1>
 
 <p>CodeIgniter was originally developed by <a href="http://www.ellislab.com/">Rick Ellis</a> (CEO of
-<a href="http://ellislab.com/">EllisLab, Inc.</a>). The framework was written for performance in the real
+<a href="http://ellislab.com/">EllisLab, Inc.</a>).  The framework was written for performance in the real
 world, with many of the class libraries, helpers, and sub-systems borrowed from the code-base of
 <a href="http://www.expressionengine.com/">ExpressionEngine</a>.</p>
 
diff --git a/user_guide/general/drivers.html b/user_guide/general/drivers.html
index 4cdb568..8dbeb93 100644
--- a/user_guide/general/drivers.html
+++ b/user_guide/general/drivers.html
@@ -58,15 +58,15 @@
 <h1>Using CodeIgniter Drivers</h1>
 
 
-<p>Drivers are a special type of Library that has a parent class and any number of potential child classes. Child classes have access to the parent class, but not their siblings. Drivers provide an elegant syntax in your <a href="controllers.html">controllers</a> for libraries that benefit from or require being broken down into discrete classes.</p>
+<p>Drivers are a special type of Library that has a parent class and any number of potential child classes.  Child classes have access to the parent class, but not their siblings.  Drivers provide an elegant syntax  in your <a href="controllers.html">controllers</a> for libraries that benefit from or require being broken down into discrete classes.</p>
 
-<p>Drivers are found in the <dfn>system/libraries</dfn> folder, in their own folder which is identically named to the parent library class. Also inside that folder is a subfolder named <kbd>drivers</kbd>, which contains all of the possible child class files.</p>
+<p>Drivers are found in the <dfn>system/libraries</dfn> folder, in their own folder which is identically named to the parent library class.  Also inside that folder is a subfolder named <kbd>drivers</kbd>, which contains all of the possible child class files.</p>
 
 <p>To use a driver you will initialize it within a controller using the following initialization function:</p>
 
 <code>$this->load->driver('<var>class name</var>'); </code>
 
-<p>Where <var>class name</var> is the name of the driver class you want to invoke. For example, to load a driver named "Some Parent" you would do this:</p>
+<p>Where <var>class name</var> is the name of the driver class you want to invoke.  For example, to load a driver named "Some Parent" you would do this:</p>
 
 <code>$this->load->driver('<var>some_parent</var>');</code>
 
diff --git a/user_guide/general/environments.html b/user_guide/general/environments.html
index 9aed1d6..175a153 100644
--- a/user_guide/general/environments.html
+++ b/user_guide/general/environments.html
@@ -58,17 +58,17 @@
 <h1>Handling Multiple Environments</h1>
 
 <p>
-  Developers often desire different system behavior depending on whether
-  an application is running in a development or production
-  environment. For example, verbose error output is something that would
-  be useful while developing an application, but it may also pose a security issue when "live".
+    Developers often desire different system behavior depending on whether
+    an application is running in a development or production
+    environment. For example, verbose error output is something that would
+    be useful while developing an application, but it may also pose a security issue when "live".
 </p>
 
 <h2>The ENVIRONMENT Constant</h2>
 
 <p>
-  By default, CodeIgniter comes with the environment constant set to
-  '<kbd>development</kbd>'. At the top of index.php, you will see:
+    By default, CodeIgniter comes with the environment constant set to
+    '<kbd>development</kbd>'. At the top of index.php, you will see:
 </p>
 
 <code>
@@ -76,35 +76,35 @@
 </code>
 
 <p>
-  In addition to affecting some basic framework behavior (see the next section),
-  you may use this constant in your own development to differentiate
-  between which environment you are running in.
+    In addition to affecting some basic framework behavior (see the next section),
+    you may use this constant in your own development to differentiate
+    between which environment you are running in.
 </p>
 
 <h2>Effects On Default Framework Behavior</h2>
 
 <p>
-  There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd>
-  constant is used. This section describes how default framework behavior is
-  affected.
+    There are some places in the CodeIgniter system where the <kbd>ENVIRONMENT</kbd>
+    constant is used. This section describes how default framework behavior is
+    affected.
 </p>
 
 <h3>Error Reporting</h3>
 
 <p>
-  Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will
-  cause all PHP errors to be rendered to the browser when they occur. Conversely,
-  setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling
-  error reporting in production is a <a href="security.html">good security practice</a>.
+    Setting the <kbd>ENVIRONMENT</kbd> constant to a value of '<kbd>development</kbd>' will
+    cause all PHP errors to be rendered to the browser when they occur. Conversely,
+    setting the constant to '<kbd>production</kbd>' will disable all error output. Disabling
+    error reporting in production is a <a href="security.html">good security practice</a>.
 </p>
 
 <h3>Configuration Files</h3>
 
 <p>
-  Optionally, you can have CodeIgniter load environment-specific
-  configuration files. This may be useful for managing things like differing API keys
-  across multiple environments. This is described in more detail in the
-  environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation.
+    Optionally, you can have CodeIgniter load environment-specific
+    configuration files. This may be useful for managing things like differing API keys
+    across multiple environments. This is described in more detail in the
+    environment section of the <a href="../libraries/config.html#environments">Config Class</a> documentation.
 </p>
 
 </div>
diff --git a/user_guide/general/errors.html b/user_guide/general/errors.html
index b1664c6..58eff65 100644
--- a/user_guide/general/errors.html
+++ b/user_guide/general/errors.html
@@ -60,13 +60,13 @@
 <p>CodeIgniter lets you build error reporting into your applications using the functions described below.
 In addition, it has an error logging class that permits error and debugging messages to be saved as text files.</p>
 
-<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors. You might
-wish to change this behavior once your development is complete. You'll find the <dfn>error_reporting()</dfn>
+<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors.  You might
+wish to change this behavior once your development is complete.  You'll find the <dfn>error_reporting()</dfn>
 function located at the top of your main index.php file. Disabling error reporting will NOT prevent log files
 from being written if there are errors.</p>
 
 <p>Unlike most systems in CodeIgniter, the error functions are simple procedural interfaces that are available
-globally throughout the application. This approach permits error messages to get triggered without having to worry
+globally throughout the application.  This approach permits error messages to get triggered without having to worry
 about class/function scoping.</p>
 
 <p>The following functions let you generate errors:</p>
@@ -88,9 +88,9 @@
 
 <h2>log_message('<var>level</var>', '<samp>message</samp>')</h2>
 
-<p>This function lets you write messages to your log files. You must supply one of three "levels"
+<p>This function lets you write messages to your log files.  You must supply one of three "levels"
 in the first parameter, indicating what type of message it is (debug, error, info), with the message
-itself in the second parameter. Example:</p>
+itself in the second parameter.  Example:</p>
 
 <code>
 if ($some_var == "")<br />
@@ -108,14 +108,14 @@
 <p>There are three message types:</p>
 
 <ol>
-<li>Error Messages. These are actual errors, such as PHP errors or user errors.</li>
-<li>Debug Messages. These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li>
-<li>Informational Messages. These are the lowest priority messages, simply giving information regarding some process. CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li>
+<li>Error Messages.  These are actual errors, such as PHP errors or user errors.</li>
+<li>Debug Messages.  These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li>
+<li>Informational Messages.  These are the lowest priority messages, simply giving information regarding some process.  CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li>
 </ol>
 
 
 <p class="important"><strong>Note:</strong> In order for the log file to actually be written, the
- "logs" folder must be writable. In addition, you must set the "threshold" for logging in <dfn>application/config/config.php</dfn>.
+ "logs" folder must be writable.  In addition, you must set the "threshold" for logging in <dfn>application/config/config.php</dfn>.
 You might, for example, only want error messages to be logged, and not the other two types.
 If you set it to zero logging will be disabled.</p>
 
diff --git a/user_guide/general/helpers.html b/user_guide/general/helpers.html
index 99f4717..339a0df 100644
--- a/user_guide/general/helpers.html
+++ b/user_guide/general/helpers.html
@@ -57,20 +57,20 @@
 
 <h1>Helper Functions</h1>
 
-<p>Helpers, as the name suggests, help you with tasks. Each helper file is simply a collection of functions in a particular
-category. There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn>
+<p>Helpers, as the name suggests, help you with tasks.  Each helper file is simply a collection of functions in a particular
+category.  There are <dfn>URL Helpers</dfn>, that assist in creating links, there are <dfn>Form Helpers</dfn>
 that help you create form elements, <dfn>Text Helpers</dfn> perform various text formatting routines,
 <dfn>Cookie Helpers</dfn> set and read cookies, <dfn>File Helpers</dfn> help you deal with files, etc.
 </p>
 
-<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format. They are simple, procedural functions.
+<p>Unlike most other systems in CodeIgniter, Helpers are not written in an Object Oriented format.  They are simple, procedural functions.
 Each helper function performs one specific task, with no dependence on other functions.</p>
 
 <p>CodeIgniter does not load Helper Files by default, so the first step in using
-a Helper is to load it. Once loaded, it becomes globally available in your <a href="../general/controllers.html">controller</a> and <a href="../general/views.html">views</a>.</p>
+a Helper is to load it.  Once loaded, it becomes globally available in your <a href="../general/controllers.html">controller</a> and <a href="../general/views.html">views</a>.</p>
 
 <p>Helpers are typically stored in your <dfn>system/helpers</dfn>, or <dfn>application/helpers </dfn>directory.	CodeIgniter will look first in your <dfn>application/helpers</dfn>
-directory. If the directory does not exist or the specified helper is not located there CI will instead look in your global
+directory.  If the directory does not exist or the specified helper is not located there CI will instead look in your global
 <dfn>system/helpers</dfn> folder.</p>
 
 
@@ -87,10 +87,10 @@
 <code>$this->load->helper('<var>url</var>');</code>
 
 <p>A helper can be loaded anywhere within your controller functions (or even within your View files, although that's not a good practice),
-as long as you load it before you use it. You can load your helpers in your controller constructor so that they become available
+as long as you load it before you use it.  You can load your helpers in your controller constructor so that they become available
 automatically in any function, or you can load a helper in a specific function that needs it.</p>
 
-<p class="important">Note: The Helper loading function above does not return a value, so don't try to assign it to a variable. Just use it as shown.</p>
+<p class="important">Note: The Helper loading function above does not return a value, so don't try to assign it to a variable.  Just use it as shown.</p>
 
 
 <h2>Loading Multiple Helpers</h2>
@@ -117,12 +117,12 @@
 
 <h2>"Extending" Helpers</h2>
 
-<p>To "extend" Helpers, create a file in your <dfn>application/helpers/</dfn> folder with an identical name to the existing Helper, but prefixed with <kbd>MY_</kbd> (this item is configurable. See below.).</p>
+<p>To "extend" Helpers, create a file in your <dfn>application/helpers/</dfn> folder with an identical name to the existing Helper, but prefixed with <kbd>MY_</kbd> (this item is configurable.  See below.).</p>
 
 <p>If all you need to do is add some functionality to an existing helper - perhaps add a function or two, or change how a particular
-	helper function operates - then it's overkill to replace the entire helper with your version. In this case it's better to simply
-	"extend" the Helper. The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended
-	in the traditional programmatic sense. Under the hood, this gives you the ability to add to the functions a Helper provides,
+	helper function operates - then it's overkill to replace the entire helper with your version.  In this case it's better to simply
+	"extend" the Helper.  The term "extend" is used loosely since Helper functions are procedural and discrete and cannot be extended
+	in the traditional programmatic sense.  Under the hood, this gives you the ability to add to the functions a Helper provides,
 	or to modify how the native Helper functions operate.</p>
 
 <p>For example, to extend the native <kbd>Array Helper</kbd> you'll create a file named <dfn>application/helpers/</dfn><kbd>MY_array_helper.php</kbd>, and add or override functions:</p>
@@ -154,7 +154,7 @@
 
 <h3>Setting Your Own Prefix</h3>
 
-<p>The filename prefix for "extending" Helpers is the same used to extend libraries and Core classes. To set your own prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p>
+<p>The filename prefix for "extending" Helpers is the same used to extend libraries and Core classes.  To set your own prefix, open your <dfn>application/config/config.php</dfn> file and look for this item:</p>
 
 <code>$config['subclass_prefix'] = 'MY_';</code>
 
@@ -163,7 +163,7 @@
 
 <h2>Now What?</h2>
 
-<p>In the Table of Contents you'll find a list of all the available Helper Files. Browse each one to see what they do.</p>
+<p>In the Table of Contents you'll find a list of all the available Helper Files.  Browse each one to see what they do.</p>
 
 
 </div>
diff --git a/user_guide/general/hooks.html b/user_guide/general/hooks.html
index 1293d12..11de409 100644
--- a/user_guide/general/hooks.html
+++ b/user_guide/general/hooks.html
@@ -73,7 +73,7 @@
 
 <h2>Defining a Hook</h2>
 
-<p>Hooks are defined in <dfn>application/config/hooks.php</dfn> file. Each hook is specified as an array with this prototype:</p>
+<p>Hooks are defined in <dfn>application/config/hooks.php</dfn> file.  Each hook is specified as an array with this prototype:</p>
 
 <code>
 $hook['pre_controller'] = array(<br />
@@ -85,14 +85,14 @@
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);</code>
 
 <p><strong>Notes:</strong><br />The array index correlates to the name of the particular hook point you want to
-use. In the above example the hook point is <kbd>pre_controller</kbd>. A list of hook points is found below.
+use.  In the above example the hook point is <kbd>pre_controller</kbd>. A list of hook points is found below.
 The following items should be defined in your associative hook array:</p>
 
 <ul>
 <li><strong>class</strong>&nbsp; The name of the class you wish to invoke. If you prefer to use a procedural function instead of a class, leave this item blank.</li>
 <li><strong>function</strong>&nbsp; The function name you wish to call.</li>
 <li><strong>filename</strong>&nbsp; The file name containing your class/function.</li>
-<li><strong>filepath</strong>&nbsp; The name of the directory containing your script. Note: Your script must be located in a directory INSIDE your <kbd>application</kbd> folder, so the file path is relative to that folder. For example, if your script is located in <dfn>application/hooks</dfn>, you will simply use <samp>hooks</samp> as your filepath. If your script is located in <dfn>application/hooks/utilities</dfn> you will use <samp>hooks/utilities</samp> as your filepath. No trailing slash.</li>
+<li><strong>filepath</strong>&nbsp; The name of the directory containing your script.  Note: Your script must be located in a directory INSIDE your <kbd>application</kbd> folder, so the file path is relative to that folder.  For example, if your script is located in <dfn>application/hooks</dfn>, you will simply use <samp>hooks</samp> as your filepath.  If your script is located in <dfn>application/hooks/utilities</dfn> you will use <samp>hooks/utilities</samp> as your filepath. No trailing slash.</li>
 <li><strong>params</strong>&nbsp; Any parameters you wish to pass to your script. This item is optional.</li>
 </ul>
 
@@ -122,7 +122,7 @@
 
 <code>$hook['pre_controller']<kbd>[]</kbd></code>
 
-<p>This permits you to have the same hook point with multiple scripts. The order you define your array will be the execution order.</p>
+<p>This permits you to have the same hook point with multiple scripts.  The order you define your array will be the execution order.</p>
 
 
 <h2>Hook Points</h2>
@@ -131,7 +131,7 @@
 
 <ul>
 		<li><strong>pre_system</strong><br />
-			Called very early during system execution. Only the benchmark and hooks class have been loaded at this point. No routing or other processes have happened.</li>
+			Called very early during system execution.  Only the benchmark and hooks class have been loaded at this point. No routing or other processes have happened.</li>
 		<li><strong>pre_controller</strong><br />
 			Called immediately prior to any of your controllers being called. All base classes, routing, and security checks have been done.</li>
 		<li><strong>post_controller_constructor</strong><br />
@@ -139,10 +139,10 @@
 		<li><strong>post_controller</strong><br />
 			Called immediately after your controller is fully executed.</li>
 		<li><strong>display_override</strong><br />
-			Overrides the <dfn>_display()</dfn> function, used to send the finalized page to the web browser at the end of system execution. This permits you to
-			use your own display methodology. Note that you will need to reference the CI superobject with <dfn>$this->CI =&amp; get_instance()</dfn> and then the finalized data will be available by calling <dfn>$this->CI->output->get_output()</dfn></li>
+			Overrides the <dfn>_display()</dfn> function, used to send the finalized page to the web browser at the end of system execution.  This permits you to
+			use your own display methodology.  Note that you will need to reference the CI superobject with <dfn>$this->CI =&amp; get_instance()</dfn> and then the finalized data will be available by calling <dfn>$this->CI->output->get_output()</dfn></li>
 		<li><strong>cache_override</strong><br />
-			Enables you to call your own function instead of the <dfn>_display_cache()</dfn> function in the output class. This permits you to use your own cache display mechanism.</li>
+			Enables you to call your own function instead of the <dfn>_display_cache()</dfn> function in the output class.  This permits you to use your own cache display mechanism.</li>
 		<li><strong>post_system</strong><br />
 			Called after the final rendered page is sent to the browser, at the end of system execution after the finalized data is sent to the browser.</li>
 	</ul>
diff --git a/user_guide/general/libraries.html b/user_guide/general/libraries.html
index ff86924..ce367cd 100644
--- a/user_guide/general/libraries.html
+++ b/user_guide/general/libraries.html
@@ -63,7 +63,7 @@
 
 <code>$this->load->library('<var>class name</var>'); </code>
 
-<p>Where <var>class name</var> is the name of the class you want to invoke. For example, to load the form validation class you would do this:</p>
+<p>Where <var>class name</var> is the name of the class you want to invoke.  For example, to load the form validation class you would do this:</p>
 
 <code>$this->load->library('<var>form_validation</var>'); </code>
 
diff --git a/user_guide/general/managing_apps.html b/user_guide/general/managing_apps.html
index a6f9b72..ea886d9 100644
--- a/user_guide/general/managing_apps.html
+++ b/user_guide/general/managing_apps.html
@@ -58,7 +58,7 @@
 <h1>Managing your Applications</h1>
 
 <p>By default it is assumed that you only intend to use CodeIgniter to manage one application, which you will build in your
-<dfn>application/</dfn> directory. It is possible, however, to have multiple sets of applications that share a single
+<dfn>application/</dfn> directory.  It is possible, however, to have multiple sets of applications that share a single
 CodeIgniter installation, or even to rename or relocate your <dfn>application</dfn> folder.</p>
 
 <h2>Renaming the Application Folder</h2>
@@ -83,7 +83,7 @@
 put all of the directories located inside your <kbd>application</kbd> folder into their
 own sub-folder.</p>
 
-<p>For example, let's say you want to create two applications, "foo" and "bar". You could structure your
+<p>For example, let's say you want to create two applications, "foo" and "bar".  You could structure your
 application folders like this:</p>
 
 <code>applications/<var>foo</var>/<br />
@@ -103,12 +103,12 @@
 
 
 <p>To select a particular application for use requires that you open your main <kbd>index.php</kbd> file and set the <dfn>$application_folder</dfn>
-variable. For example, to select the "foo" application for use you would do this:</p>
+variable.  For example, to select the "foo" application for use you would do this:</p>
 
 <code>$application_folder = "applications/foo";</code>
 
 <p class="important"><strong>Note:</strong>&nbsp; Each of your applications will need its own <dfn>index.php</dfn> file which
-calls the desired application. The index.php file can be named anything you want.</p>
+calls the desired application.  The index.php file can be named anything you want.</p>
 
 
 
diff --git a/user_guide/general/models.html b/user_guide/general/models.html
index c0e4943..117c810 100644
--- a/user_guide/general/models.html
+++ b/user_guide/general/models.html
@@ -72,8 +72,8 @@
 
 <h2><a name="what"></a>What is a Model?</h2>
 
-<p>Models are PHP classes that are designed to work with information in your database. For example, let's say
-you use CodeIgniter to manage a blog. You might have a model class that contains functions to insert, update, and
+<p>Models are PHP classes that are designed to work with information in your database.  For example, let's say
+you use CodeIgniter to manage a blog.  You might have a model class that contains functions to insert, update, and
 retrieve your blog data. Here is an example of what such a model class might look like:</p>
 
 <code>
@@ -116,10 +116,10 @@
 }</code>
 
 <p>Note: The functions in the above example use the <a href="../database/active_record.html">Active Record</a> database functions.</p>
-<p class="important"><strong>Note:</strong> For the sake of simplicity in this example we're using $_POST directly. This is generally bad practice, and a more common approach would be to use the <a href="../libraries/input.html">Input Class</a> $this-&gt;input-&gt;post('title')</p>
+<p class="important"><strong>Note:</strong> For the sake of simplicity in this example we're using $_POST directly.  This is generally bad practice, and a more common approach would be to use the <a href="../libraries/input.html">Input Class</a> $this-&gt;input-&gt;post('title')</p>
 <h2><a name="anatomy"></a>Anatomy of a Model</h2>
 
-<p>Model classes are stored in your <dfn>application/models/</dfn> folder. They can be nested within sub-folders if you
+<p>Model classes are stored in your <dfn>application/models/</dfn> folder.  They can be nested within sub-folders if you
 want this type of organization.</p>
 
 <p>The basic prototype for a model class is this:</p>
@@ -134,10 +134,10 @@
 &nbsp;&nbsp;&nbsp;&nbsp;}<br />
 }</code>
 
-<p>Where <var>Model_name</var> is the name of your class. Class names <strong>must</strong> have the first letter capitalized with the rest of the name lowercase.
+<p>Where <var>Model_name</var> is the name of your class.  Class names <strong>must</strong> have the first letter capitalized with the rest of the name lowercase.
 Make sure your class extends the base Model class.</p>
 
-<p>The file name will be a lower case version of your class name. For example, if your class is this:</p>
+<p>The file name will be a lower case version of your class name.  For example, if your class is this:</p>
 
 <code>
 class&nbsp;<var>User_model</var>&nbsp;extends&nbsp;CI_Model&nbsp;{<br />
@@ -161,7 +161,7 @@
 
 <code>$this->load->model('<var>Model_name</var>');</code>
 
-<p>If your model is located in a sub-folder, include the relative path from your models folder. For example, if
+<p>If your model is located in a sub-folder, include the relative path from your models folder.  For example, if
 you have a model located at <dfn>application/models/blog/queries.php</dfn> you'll load it using:</p>
 
 <code>$this->load->model('<var>blog/queries</var>');</code>
@@ -200,12 +200,12 @@
 }</code>
 
 <h2><a name="auto_load_model" id="auto_load_model"></a>Auto-loading Models</h2>
-<p>If you find that you need a particular model globally throughout your application, you can tell CodeIgniter to auto-load it during system initialization. This is done by opening the application/config/autoload.php file and adding the model to the autoload array.</p>
+<p>If you find that you need a particular model globally throughout your  application, you can tell CodeIgniter to auto-load it during system  initialization.  This is done by opening the application/config/autoload.php file and adding the model to the autoload array.</p>
 
 
 <h2><a name="conn"></a>Connecting to your Database</h2>
 
-<p>When a model is loaded it does <strong>NOT</strong> connect automatically to your database. The following options for connecting are available to you:</p>
+<p>When a model is loaded it does <strong>NOT</strong> connect automatically to your database.  The following options for connecting are available to you:</p>
 
 <ul>
 <li>You can connect using the standard database methods <a href="../database/connecting.html">described here</a>, either from within your Controller class or your Model class.</li>
diff --git a/user_guide/general/profiling.html b/user_guide/general/profiling.html
index fdf8b6c..78ece7d 100644
--- a/user_guide/general/profiling.html
+++ b/user_guide/general/profiling.html
@@ -87,7 +87,7 @@
 
 <h2>Enabling and Disabling Profiler Sections</h2>
 
-	<p>Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to <var>TRUE</var> or <var>FALSE</var>. This can be done one of two ways. First, you can set application wide defaults with the <dfn>application/config/profiler.php</dfn> config file.</p>
+	<p>Each section of Profiler data can be enabled or disabled by setting a corresponding config variable to <var>TRUE</var> or <var>FALSE</var>.  This can be done one of two ways.  First, you can set application wide defaults with the <dfn>application/config/profiler.php</dfn> config file.</p>
 
 	<code>$config['config']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= FALSE;<br />
 	$config['queries']&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;= FALSE;<br /></code>
diff --git a/user_guide/general/reserved_names.html b/user_guide/general/reserved_names.html
index 48b6b2a..00bebff 100644
--- a/user_guide/general/reserved_names.html
+++ b/user_guide/general/reserved_names.html
@@ -61,8 +61,8 @@
 <h3>Controller names</h3>
 <p>Since your controller classes will extend the main application controller you
 must be careful not to name your functions identically to the ones used by that class, otherwise your local functions
-will override them. The following
-is a list of reserved names. Do not name your controller any of these:</p>
+will override them.  The following
+is a list of reserved names.  Do not name your controller any of these:</p>
 <ul>
 	<li>Controller</li>
 	<li>CI_Base</li>
diff --git a/user_guide/general/routing.html b/user_guide/general/routing.html
index 6f06ad6..d1d8d1a 100644
--- a/user_guide/general/routing.html
+++ b/user_guide/general/routing.html
@@ -80,7 +80,7 @@
 
 <h2>Setting your own routing rules</h2>
 
-<p>Routing rules are defined in your <var>application/config/routes.php</var> file. In it you'll see an array called <dfn>$route</dfn> that
+<p>Routing rules are defined in your <var>application/config/routes.php</var> file.  In it you'll see an array called <dfn>$route</dfn> that
 permits you to specify your own routing criteria. Routes can either be specified using <dfn>wildcards</dfn> or <dfn>Regular Expressions</dfn></p>
 
 
@@ -90,7 +90,7 @@
 
 <code>$route['product/:num'] = "catalog/product_lookup";</code>
 
-<p>In a route, the array key contains the URI to be matched, while the array value contains the destination it should be re-routed to.
+<p>In a route, the array key contains the URI to be matched, while the array value  contains the destination it should be re-routed to.
 In the above example, if the literal word "product" is found in the first segment of the URL, and a number is found in the second segment,
 the "catalog" class and the "product_lookup" method are instead used.</p>
 
@@ -111,10 +111,10 @@
 <p>A URL containing the word "journals" in the first segment will be remapped to the "blogs" class.</p>
 
 <code>$route['blog/joe'] = "blogs/users/34";</code>
-<p>A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method. The ID will be set to "34".</p>
+<p>A URL containing the segments blog/joe will be remapped to the "blogs" class and the "users" method.  The ID will be set to "34".</p>
 
 <code>$route['product/(:any)'] = "catalog/product_lookup";</code>
-<p>A URL with "product" as the first segment, and anything in the second will be remapped to the "catalog" class and the "product_lookup" method.</p>
+<p>A URL with "product" as the first segment, and anything in the second will be remapped to the "catalog" class and the  "product_lookup" method.</p>
 
 <code>$route['product/(:num)'] = "catalog/product_lookup_by_id/$1";</code>
 <p>A URL with "product" as the first segment, and a number in the second will be remapped to the "catalog" class and the "product_lookup_by_id" method passing in the match as a variable to the function.</p>
@@ -123,7 +123,7 @@
 
 <h2>Regular Expressions</h2>
 
-<p>If you prefer you can use regular expressions to define your routing rules. Any valid regular expression is allowed, as are back-references.</p>
+<p>If you prefer you can use regular expressions to define your routing rules.  Any valid regular expression is allowed, as are back-references.</p>
 
 <p class="important"><strong>Note:</strong>&nbsp; If you use back-references you must use the dollar syntax rather than the double backslash syntax.</p>
 
@@ -142,7 +142,7 @@
 <code>$route['default_controller'] = 'welcome';</code>
 
 <p>This route indicates which controller class should be loaded if the URI contains no data, which will be the case
-when people load your root URL. In the above example, the "welcome" class would be loaded. You
+when people load your root URL. In the above example, the "welcome" class would be loaded.  You
 are encouraged to always have a default route otherwise a 404 page will appear by default.</p>
 
 <code>$route['404_override'] = '';</code>
diff --git a/user_guide/general/security.html b/user_guide/general/security.html
index bcbb36c..ab92a94 100644
--- a/user_guide/general/security.html
+++ b/user_guide/general/security.html
@@ -64,7 +64,7 @@
 <h2>URI Security</h2>
 
 <p>CodeIgniter is fairly restrictive regarding which characters it allows in your URI strings in order to help
-minimize the possibility that malicious data can be passed to your application. URIs may only contain the following:
+minimize the possibility that malicious data can be passed to your application.  URIs may only contain the following:
 </p>
 
 <ul>
@@ -79,7 +79,7 @@
 <h2>GET, POST, and COOKIE Data</h2>
 
 <p>GET data is simply disallowed by CodeIgniter since the system utilizes URI segments rather than traditional URL query strings (unless
-you have the query string option enabled in your config file). The global GET
+you have the query string option enabled in your config file).  The global GET
 array is <strong>unset</strong> by the Input class during system initialization.</p>
 
 <h2>Register_globals</h2>
@@ -91,18 +91,18 @@
 <h2>error_reporting</h2>
 
 <p>
-  In production environments, it is typically desirable to disable PHP's
-  error reporting by setting the internal error_reporting flag to a value of 0. This disables native PHP
-  errors from being rendered as output, which may potentially contain
-  sensitive information.
+    In production environments, it is typically desirable to disable PHP's 
+    error reporting by setting the internal error_reporting flag to a value of 0. This disables native PHP
+    errors from being rendered as output, which may potentially contain
+    sensitive information.
 </p>
 
 <p>
-  Setting CodeIgniter's <kbd>ENVIRONMENT</kbd> constant in index.php to a
-  value of '<kbd>production</kbd>' will turn off these errors. In development
-  mode, it is recommended that a value of '<kbd>development</kbd>' is used.
-  More information about differentiating between environments can be found
-  on the <a href="environments.html">Handling Environments</a> page.
+    Setting CodeIgniter's <kbd>ENVIRONMENT</kbd> constant in index.php to a
+    value of '<kbd>production</kbd>' will turn off these errors. In development
+    mode, it is recommended that a value of '<kbd>development</kbd>' is used.
+    More information about differentiating between environments can be found
+    on the <a href="environments.html">Handling Environments</a> page.
 </p>
 
 <h2>magic_quotes_runtime</h2>
@@ -117,7 +117,7 @@
 
 <ol>
 <li>Filter the data as if it were tainted.</li>
-<li>Validate the data to ensure it conforms to the correct type, length, size, etc. (sometimes this step can replace step one)</li>
+<li>Validate the data to ensure it conforms to the correct  type, length, size, etc. (sometimes this step can replace step one)</li>
 <li>Escape the data before submitting it into your database.</li>
 </ol>
 
@@ -127,7 +127,7 @@
 
 <li><h2>XSS Filtering</h2>
 
-<p>CodeIgniter comes with a Cross Site Scripting filter. This filter looks for commonly
+<p>CodeIgniter comes with a Cross Site Scripting filter.  This filter looks for commonly
 used techniques to embed malicious Javascript into your data, or other types of code that attempt to hijack cookies
 or do other malicious things. The XSS Filter is described <a href="../libraries/security.html">here</a>.
 </p>
diff --git a/user_guide/general/styleguide.html b/user_guide/general/styleguide.html
index fc9ceb2..1f7a8a0 100644
--- a/user_guide/general/styleguide.html
+++ b/user_guide/general/styleguide.html
@@ -102,13 +102,13 @@
 
 		<h2><a name="file_format"></a>File Format</h2>
 		<div class="guidelineDetails">
-			<p>Files should be saved with Unicode (UTF-8) encoding. The <abbr title="Byte Order Mark">BOM</abbr>
-				should <em>not</em> be used. Unlike UTF-16 and UTF-32, there's no byte order to indicate in
+			<p>Files should be saved with Unicode (UTF-8) encoding.  The <abbr title="Byte Order Mark">BOM</abbr>
+				should <em>not</em> be used.  Unlike UTF-16 and UTF-32, there's no byte order to indicate in
 				a UTF-8 encoded file, and the <abbr title="Byte Order Mark">BOM</abbr> can have a negative side effect in PHP of sending output,
-				preventing the application from being able to set its own headers. Unix line endings should
+				preventing the application from being able to set its own headers.  Unix line endings should
 				be used (LF).</p>
 
-			<p>Here is how to apply these settings in some of the more common text editors. Instructions for your
+			<p>Here is how to apply these settings in some of the more common text editors.  Instructions for your
 				text editor may vary; check your text editor's documentation.</p>
 
 			<h5>TextMate</h5>
@@ -137,8 +137,8 @@
 
 		<h2><a name="php_closing_tag"></a>PHP Closing Tag</h2>
 		<div class="guidelineDetails">
-			<p>The PHP closing tag on a PHP document <strong>?&gt;</strong> is optional to the PHP parser. However, if used, any whitespace following the closing tag, whether introduced
-				by the developer, user, or an FTP application, can cause unwanted output, PHP errors, or if the latter are suppressed, blank pages. For this reason, all PHP files should
+			<p>The PHP closing tag on a PHP document <strong>?&gt;</strong> is optional to the PHP parser.  However, if used, any whitespace following the closing tag, whether introduced
+				by the developer, user, or an FTP application, can cause unwanted output, PHP errors, or if the latter are suppressed, blank pages.  For this reason, all PHP files should
 				<strong>OMIT</strong> the closing PHP tag, and instead use a comment block to mark the end of file and it's location relative to the application root.
 				This allows you to still identify a file as being complete and not truncated.</p>
 <code><strong>INCORRECT</strong>:
@@ -161,7 +161,7 @@
 
 		<h2><a name="class_and_method_naming"></a>Class and Method Naming</h2>
 		<div class="guidelineDetails">
-			<p>Class names should always start with an uppercase letter. Multiple words should be separated with an underscore, and not CamelCased. All other class methods should be entirely lowercased and named to clearly indicate their function, preferably including a verb. Try to avoid overly long and verbose names.</p>
+			<p>Class names should always start with an uppercase letter.  Multiple words should be separated with an underscore, and not CamelCased.  All other class methods should be entirely lowercased and named to clearly indicate their function, preferably including a verb.  Try to avoid overly long and verbose names.</p>
 
 	<code><strong>INCORRECT</strong>:
 class superclass
@@ -184,7 +184,7 @@
 	<code><strong>INCORRECT</strong>:
 function fileproperties()		// not descriptive and needs underscore separator
 function fileProperties()		// not descriptive and uses CamelCase
-function getfileproperties()		// Better! But still missing underscore separator
+function getfileproperties()		// Better!  But still missing underscore separator
 function getFileProperties()		// uses CamelCase
 function get_the_file_properties_from_the_file()	// wordy
 
@@ -196,7 +196,7 @@
 
 		<h2><a name="variable_names"></a>Variable Names</h2>
 		<div class="guidelineDetails">
-			<p>The guidelines for variable naming is very similar to that used for class methods. Namely, variables should contain only lowercase letters, use underscore separators, and be reasonably named to indicate their purpose and contents. Very short, non-word variables should only be used as iterators in for() loops.</p>
+			<p>The guidelines for variable naming is very similar to that used for class methods.  Namely, variables should contain only lowercase letters, use underscore separators, and be reasonably named to indicate their purpose and contents. Very short, non-word variables should only be used as iterators in for() loops.</p>
 <code><strong>INCORRECT</strong>:
 $j = &apos;foo&apos;;		// single letter variables should only be used in for() loops
 $Str			// contains uppercase letters
@@ -216,7 +216,7 @@
 
 		<h2><a name="commenting"></a>Commenting</h2>
 		<div class="guidelineDetails">
-			<p>In general, code should be commented prolifically. It not only helps describe the flow and intent of the code for less experienced programmers, but can prove invaluable when returning to your own code months down the line. There is not a required format for comments, but the following are recommended.</p>
+			<p>In general, code should be commented prolifically.  It not only helps describe the flow and intent of the code for less experienced programmers, but can prove invaluable when returning to your own code months down the line.  There is not a required format for comments, but the following are recommended.</p>
 
 			<p><a href="http://manual.phpdoc.org/HTMLSmartyConverter/HandS/phpDocumentor/tutorial_phpDocumentor.howto.pkg.html#basics.docblock">DocBlock</a> style comments preceding class and method declarations so they can be picked up by IDEs:</p>
 
@@ -246,9 +246,9 @@
 $parts = explode("\n", $str);
 
 // A longer comment that needs to give greater detail on what is
-// occurring and why can use multiple single-line comments. Try to
+// occurring and why can use multiple single-line comments.  Try to
 // keep the width reasonable, around 70 characters is the easiest to
-// read. Don't hesitate to link to permanent external resources
+// read.  Don't hesitate to link to permanent external resources
 // that may provide greater detail:
 //
 // http://example.com/information_about_something/in_particular/
@@ -260,7 +260,7 @@
 
 		<h2><a name="constants"></a>Constants</h2>
 		<div class="guidelineDetails">
-			<p>Constants follow the same guidelines as do variables, except constants should always be fully uppercase. <em>Always use CodeIgniter constants when appropriate, i.e. SLASH, LD, RD, PATH_CACHE, etc.</em></p>
+			<p>Constants follow the same guidelines as do variables, except constants should always be fully uppercase.  <em>Always use CodeIgniter constants when appropriate, i.e. SLASH, LD, RD, PATH_CACHE, etc.</em></p>
 <code><strong>INCORRECT</strong>:
 myConstant	// missing underscore separator and not fully uppercase
 N		// no single-letter constants
@@ -298,7 +298,7 @@
 				<strong>&amp;&amp;</strong> is preferred over <strong>AND</strong> but either are acceptable, and a space should always precede and follow <strong>!</strong>.</p>
 <code><strong>INCORRECT</strong>:
 if ($foo || $bar)
-if ($foo AND $bar) // okay but not recommended for common syntax highlighting applications
+if ($foo AND $bar)  // okay but not recommended for common syntax highlighting applications
 if (!$foo)
 if (! is_array($foo))
 
@@ -314,8 +314,8 @@
 
 		<h2><a name="comparing_return_values_and_typecasting"></a>Comparing Return Values and Typecasting</h2>
 		<div class="guidelineDetails">
-			<p>Some PHP functions return FALSE on failure, but may also have a valid return value of "" or 0, which would evaluate to FALSE in loose comparisons. Be explicit by comparing the variable type when using these return values in conditionals to ensure the return value is indeed what you expect, and not a value that has an equivalent loose-type evaluation.</p>
-			<p>Use the same stringency in returning and checking your own variables. Use <strong>===</strong> and <strong>!==</strong> as necessary.
+			<p>Some PHP functions return FALSE on failure, but may also have a valid return value of "" or 0, which would evaluate to FALSE in loose comparisons.  Be explicit by comparing the variable type when using these return values in conditionals to ensure the return value is indeed what you expect, and not a value that has an equivalent loose-type evaluation.</p>
+			<p>Use the same stringency in returning and checking your own variables.  Use <strong>===</strong> and <strong>!==</strong> as necessary.
 
 <code><strong>INCORRECT</strong>:
 // If 'foo' is at the beginning of the string, strpos will return a 0,
@@ -329,7 +329,7 @@
 <code><strong>INCORRECT</strong>:
 function build_string($str = "")
 {
-	if ($str == "")	// uh-oh! What if FALSE or the integer 0 is passed as an argument?
+	if ($str == "")	// uh-oh!  What if FALSE or the integer 0 is passed as an argument?
 	{
 
 	}
@@ -344,7 +344,7 @@
 	}
 }</code>
 
-		<p>See also information regarding <a href="http://us3.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">typecasting</a>, which can be quite useful. Typecasting has a slightly different effect which may be desirable. When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and other numbers) become strings of digits, and boolean TRUE becomes "1":</p>
+		<p>See also information regarding <a href="http://us3.php.net/manual/en/language.types.type-juggling.php#language.types.typecasting">typecasting</a>, which can be quite useful.  Typecasting has a slightly different effect which may be desirable.  When casting a variable as a string, for instance, NULL and boolean FALSE variables become empty strings, 0 (and other numbers) become strings of digits, and boolean TRUE becomes "1":</p>
 
 <code>$str = (string) $str;	// cast $str as a string</code>
 
@@ -362,7 +362,7 @@
 
 		<h2><a name="whitespace_in_files"></a>Whitespace in Files</h2>
 		<div class="guidelineDetails">
-			<p>No whitespace can precede the opening PHP tag or follow the closing PHP tag. Output is buffered, so whitespace in your files can cause output to begin before CodeIgniter outputs its content, leading to errors and an inability for CodeIgniter to send proper headers. In the examples below, select the text with your mouse to reveal the incorrect whitespace.</p>
+			<p>No whitespace can precede the opening PHP tag or follow the closing PHP tag.  Output is buffered, so whitespace in your files can cause output to begin before CodeIgniter outputs its content, leading to errors and an inability for CodeIgniter to send proper headers.  In the examples below, select the text with your mouse to reveal the incorrect whitespace.</p>
 
 			<p><strong>INCORRECT</strong>:</p>
 <code>
@@ -381,14 +381,14 @@
 
 		<h2><a name="compatibility"></a>Compatibility</h2>
 		<div class="guidelineDetails">
-			<p>Unless specifically mentioned in your add-on's documentation, all code must be compatible with PHP version 5.1+. Additionally, do not use PHP functions that require non-default libraries to be installed unless your code contains an alternative method when the function is not available, or you implicitly document that your add-on requires said PHP libraries.</p>
+			<p>Unless specifically mentioned in your add-on's documentation, all code must be compatible with PHP version 5.1+.  Additionally, do not use PHP functions that require non-default libraries to be installed unless your code contains an alternative method when the function is not available, or you implicitly document that your add-on requires said PHP libraries.</p>
 		</div>
 
 
 
 		<h2><a name="class_and_file_names_using_common_words"></a>Class and File Names using Common Words</h2>
 		<div class="guidelineDetails">
-			<p>When your class or filename is a common word, or might quite likely be identically named in another PHP script, provide a unique prefix to help prevent collision. Always realize that your end users may be running other add-ons or third party PHP scripts. Choose a prefix that is unique to your identity as a developer or company.</p>
+			<p>When your class or filename is a common word, or might quite likely be identically named in another PHP script, provide a unique prefix to help prevent collision.  Always realize that your end users may be running other add-ons or third party PHP scripts.  Choose a prefix that is unique to your identity as a developer or company.</p>
 
 <code><strong>INCORRECT</strong>:
 class Email		pi.email.php
@@ -405,7 +405,7 @@
 
 		<h2><a name="database_table_names"></a>Database Table Names</h2>
 		<div class="guidelineDetails">
-			<p>Any tables that your add-on might use must use the 'exp_' prefix, followed by a prefix uniquely identifying you as the developer or company, and then a short descriptive table name. You do not need to be concerned about the database prefix being used on the user's installation, as CodeIgniter's database class will automatically convert 'exp_' to what is actually being used.</p>
+			<p>Any tables that your add-on might use must use the 'exp_' prefix, followed by a prefix uniquely identifying you as the developer or company, and then a short descriptive table name.  You do not need to be concerned about the database prefix being used on the user's installation, as CodeIgniter's database class will automatically convert 'exp_' to what is actually being used.</p>
 
 <code><strong>INCORRECT</strong>:
 email_addresses		// missing both prefixes
@@ -416,35 +416,35 @@
 exp_pre_email_addresses
 </code>
 
-			<p class="important"><strong>NOTE:</strong> Be mindful that MySQL has a limit of 64 characters for table names. This should not be an issue as table names that would exceed this would likely have unreasonable names. For instance, the following table name exceeds this limitation by one character. Silly, no? <strong>exp_pre_email_addresses_of_registered_users_in_seattle_washington</strong>
+			<p class="important"><strong>NOTE:</strong> Be mindful that MySQL has a limit of 64 characters for table names.  This should not be an issue as table names that would exceed this would likely have unreasonable names.  For instance, the following table name exceeds this limitation by one character.  Silly, no? <strong>exp_pre_email_addresses_of_registered_users_in_seattle_washington</strong>
 		</div>
 
 
 
 		<h2><a name="one_file_per_class"></a>One File per Class</h2>
 		<div class="guidelineDetails">
-			<p>Use separate files for each class your add-on uses, unless the classes are <em>closely related</em>. An example of CodeIgniter files that contains multiple classes is the Database class file, which contains both the DB class and the DB_Cache class, and the Magpie plugin, which contains both the Magpie and Snoopy classes.</p>
+			<p>Use separate files for each class your add-on uses, unless the classes are <em>closely related</em>.  An example of CodeIgniter files that contains multiple classes is the Database class file, which contains both the DB class and the DB_Cache class, and the Magpie plugin, which contains both the Magpie and Snoopy classes.</p>
 		</div>
 
 
 
 		<h2><a name="whitespace"></a>Whitespace</h2>
 		<div class="guidelineDetails">
-			<p>Use tabs for whitespace in your code, not spaces. This may seem like a small thing, but using tabs instead of whitespace allows the developer looking at your code to have indentation at levels that they prefer and customize in whatever application they use. And as a side benefit, it results in (slightly) more compact files, storing one tab character versus, say, four space characters.</p>
+			<p>Use tabs for whitespace in your code, not spaces.  This may seem like a small thing, but using tabs instead of whitespace allows the developer looking at your code to have indentation at levels that they prefer and customize in whatever application they use.  And as a side benefit, it results in (slightly) more compact files, storing one tab character versus, say, four space characters.</p>
 		</div>
 
 
 
 		<h2><a name="line_breaks"></a>Line Breaks</h2>
 		<div class="guidelineDetails">
-			<p>Files must be saved with Unix line breaks. This is more of an issue for developers who work in Windows, but in any case ensure that your text editor is setup to save files with Unix line breaks.</p>
+			<p>Files must be saved with Unix line breaks.  This is more of an issue for developers who work in Windows, but in any case ensure that your text editor is setup to save files with Unix line breaks.</p>
 		</div>
 
 
 
 		<h2><a name="code_indenting"></a>Code Indenting</h2>
 		<div class="guidelineDetails">
-			<p>Use Allman style indenting. With the exception of Class declarations, braces are always placed on a line by themselves, and indented at the same level as the control statement that "owns" them.</p>
+			<p>Use Allman style indenting.  With the exception of Class declarations, braces are always placed on a line by themselves, and indented at the same level as the control statement that "owns" them.</p>
 
 <code><strong>INCORRECT</strong>:
 function foo($bar) {
@@ -501,7 +501,7 @@
 
 	<h2><a name="bracket_spacing"></a>Bracket and Parenthetic Spacing</h2>
 		<div class="guidelineDetails">
-			<p>In general, parenthesis and brackets should not use any additional spaces. The exception is that a space should always follow PHP control structures that accept arguments with parenthesis (declare, do-while, elseif, for, foreach, if, switch, while), to help distinguish them from functions and increase readability.</p>
+			<p>In general, parenthesis and brackets should not use any additional spaces.  The exception is that a space should always follow PHP control structures that accept arguments with parenthesis (declare, do-while, elseif, for, foreach, if, switch, while), to help distinguish them from functions and increase readability.</p>
 
 <code>INCORRECT:
 $arr[ $foo ] = 'foo';
@@ -558,9 +558,9 @@
 
 		<h2><a name="php_errors"></a>PHP Errors</h2>
 		<div class="guidelineDetails">
-			<p>Code must run error free and not rely on warnings and notices to be hidden to meet this requirement. For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().</p>
+			<p>Code must run error free and not rely on warnings and notices to be hidden to meet this requirement.  For instance, never access a variable that you did not set yourself (such as $_POST array keys) without first checking to see that it isset().</p>
 
-			<p>Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment. You can check this setting with:</p>
+			<p>Make sure that while developing your add-on, error reporting is enabled for ALL users, and that display_errors is enabled in the PHP environment.  You can check this setting with:</p>
 
 <code>if (ini_get('display_errors') == 1)
 {
@@ -571,7 +571,7 @@
 
 <code>ini_set('display_errors', 1);</code>
 
-			<p class="important"><strong>NOTE:</strong> Setting the <a href="http://us.php.net/manual/en/ref.errorfunc.php#ini.display-errors">display_errors</a> setting with ini_set() at runtime is not identical to having it enabled in the PHP environment. Namely, it will not have any effect if the script has fatal errors</p>
+			<p class="important"><strong>NOTE:</strong> Setting the <a href="http://us.php.net/manual/en/ref.errorfunc.php#ini.display-errors">display_errors</a> setting with ini_set() at runtime is not identical to having it enabled in the PHP environment.  Namely, it will not have any effect if the script has fatal errors</p>
 		</div>
 
 
@@ -609,7 +609,7 @@
 
 		<h2><a name="strings"></a>Strings</h2>
 		<div class="guidelineDetails">
-			<p>Always use single quoted strings unless you need variables parsed, and in cases where you do need variables parsed, use braces to prevent greedy token parsing. You may also use double-quoted strings if the string contains single quotes, so you do not have to use escape characters.</p>
+			<p>Always use single quoted strings unless you need variables parsed, and in cases where you do need variables parsed, use braces to prevent greedy token parsing.  You may also use double-quoted strings if the string contains single quotes, so you do not have to use escape characters.</p>
 
 <code><strong>INCORRECT</strong>:
 "My String"					// no variable parsing, so no use for double quotes
diff --git a/user_guide/general/urls.html b/user_guide/general/urls.html
index b975b70..421f513 100644
--- a/user_guide/general/urls.html
+++ b/user_guide/general/urls.html
@@ -58,7 +58,7 @@
 
 <h1>CodeIgniter URLs</h1>
 
-<p>By default, URLs in CodeIgniter are designed to be search-engine and human friendly. Rather than using the standard "query string"
+<p>By default, URLs in CodeIgniter are designed to be search-engine and human friendly.  Rather than using the standard "query string"
 approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a <strong>segment-based</strong> approach:</p>
 
 <code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>my_article</samp></code>
@@ -78,7 +78,7 @@
 </ol>
 
 <p>The <a href="../libraries/uri.html">URI Class</a> and the <a href="../helpers/url_helper.html">URL Helper</a>
-contain functions that make it easy to work with your URI data. In addition, your URLs can be remapped using the
+contain functions that make it easy to work with your URI data.  In addition, your URLs can be remapped using the
 <a href="routing.html">URI Routing</a> feature for more flexibility.</p>
 
 
@@ -103,7 +103,7 @@
 <h2>Adding a URL Suffix</h2>
 
 <p>In your <dfn>config/config.php</dfn> file you can specify a suffix that will be added to all URLs generated
-by CodeIgniter. For example, if a URL is this:</p>
+by CodeIgniter.  For example, if a URL is this:</p>
 
 <code>example.com/index.php/products/view/shoes</code>
 
@@ -125,7 +125,7 @@
 $config['controller_trigger'] = 'c';<br />
 $config['function_trigger'] = 'm';</code>
 
-<p>If you change "enable_query_strings" to TRUE this feature will become active. Your controllers and functions will then
+<p>If you change "enable_query_strings" to TRUE this feature will become active.  Your controllers and functions will then
 be accessible using the "trigger" words you've set to invoke your controllers and methods:</p>
 
 <code>index.php?c=controller&amp;m=method</code>
diff --git a/user_guide/general/views.html b/user_guide/general/views.html
index ece7465..ad93f4b 100644
--- a/user_guide/general/views.html
+++ b/user_guide/general/views.html
@@ -61,7 +61,7 @@
 In fact, views can flexibly be embedded within other views (within other views, etc., etc.) if you need this type
 of hierarchy.</p>
 
-<p>Views are never called directly, they must be loaded by a <a href="controllers.html">controller</a>. Remember that in an MVC framework, the Controller acts as the
+<p>Views are never called directly, they must be loaded by a <a href="controllers.html">controller</a>.  Remember that in an MVC framework, the Controller acts as the
 traffic cop, so it is responsible for fetching a particular view. If you have not read the <a href="controllers.html">Controllers</a> page
 you should do so before continuing.</p>
 
@@ -90,7 +90,7 @@
 
 <code>$this->load->view('<var>name</var>');</code>
 
-<p>Where <var>name</var> is the name of your view file. Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p>
+<p>Where <var>name</var> is the name of your view file.  Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p>
 
 
 <p>Now, open the controller file you made earlier called <dfn>blog.php</dfn>, and replace the echo statement with the view loading function:</p>
@@ -109,19 +109,19 @@
 </textarea>
 
 
-<p>If you visit your site using the URL you did earlier you should see your new view. The URL was similar to this:</p>
+<p>If you visit your site using the URL you did earlier you should see your new view.  The URL was similar to this:</p>
 
 <code>example.com/index.php/<var>blog</var>/</code>
 
 <h2>Loading multiple views</h2>
-<p>CodeIgniter will intelligently handle multiple calls to $this-&gt;load-&gt;view from within a controller. If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p>
+<p>CodeIgniter will intelligently handle  multiple calls to $this-&gt;load-&gt;view from within a controller.  If more than one call happens they will be appended together. For example, you may wish to have a header view, a menu view, a content view, and a footer view. That might look something like this:</p>
 <p><code>&lt;?php<br />
 <br />
 class Page extends CI_Controller {<br /><br />
 
  &nbsp;&nbsp;&nbsp;function index()<br />
 &nbsp;&nbsp;&nbsp;{<br />
-&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['page_title'] = 'Your title';<br />
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$data['page_title'] =  'Your title';<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('header');<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('menu');<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;load-&gt;view('content', $data);<br />
@@ -132,8 +132,8 @@
 	?&gt;</code></p>
 <p>In the example above, we are using &quot;dynamically added data&quot;, which you will see below.</p>
 <h2>Storing Views within Sub-folders</h2>
-<p>Your view files can also be stored within sub-folders if you prefer that type of organization. When doing so you will need
-to include the folder name loading the view. Example:</p>
+<p>Your view files can also be stored within sub-folders if you prefer that type of organization.  When doing so you will need
+to include the folder name loading the view.  Example:</p>
 
 <code>$this->load->view('<kbd>folder_name</kbd>/<var>file_name</var>');</code>
 
@@ -159,7 +159,7 @@
 <p>Note: If you use an object, the class variables will be turned into array elements.</p>
 
 
-<p>Let's try it with your controller file. Open it add this code:</p>
+<p>Let's try it with your controller file.  Open it add this code:</p>
 
 <textarea class="textarea" style="width:100%" cols="50" rows="14">
 &lt;?php
@@ -195,8 +195,8 @@
 
 <h2>Creating Loops</h2>
 
-<p>The data array you pass to your view files is not limited to simple variables. You can
-pass multi dimensional arrays, which can be looped to generate multiple rows. For example, if you
+<p>The data array you pass to your view files is not limited to simple variables.  You can
+pass multi dimensional arrays, which can be looped to generate multiple rows.  For example, if you
 pull data from your database it will typically be in the form of a multi-dimensional array.</p>
 
 <p>Here's a simple example. Add this to your controller:</p>
@@ -243,15 +243,15 @@
 &lt;/body>
 &lt;/html>
 </textarea>
-<p><strong>Note:</strong> You'll notice that in the example above we are using PHP's alternative syntax. If you
+<p><strong>Note:</strong> You'll notice that in the example above we are using PHP's alternative syntax.  If you
 are not familiar with it you can read about it <a href="alternative_php.html">here</a>.</p>
 
 <h2>Returning views as data</h2>
 
 <p>There is a third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string
-rather than sending it to your browser. This can be useful if you want to process the data in some way. If you
-set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it
-to your browser. Remember to assign it to a variable if you want the data returned:</p>
+rather than sending it to your browser.  This can be useful if you want to process the data in some way.  If you
+set the parameter to <kbd>true</kbd> (boolean) it will return data.  The default behavior is <kbd>false</kbd>, which sends it
+to your browser.  Remember to assign it to a variable if you want the data returned:</p>
 
 <code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code>
 
diff --git a/user_guide/helpers/array_helper.html b/user_guide/helpers/array_helper.html
index 88e8384..a196214 100644
--- a/user_guide/helpers/array_helper.html
+++ b/user_guide/helpers/array_helper.html
@@ -70,8 +70,8 @@
 
 <h2>element()</h2>
 
-<p>Lets you fetch an item from an array. The function tests whether the array index is set and whether it has a value. If
-a value exists it is returned. If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter. Example:</p>
+<p>Lets you fetch an item from an array.  The function tests whether the array index is set and whether it has a value.  If
+a value exists it is returned.  If a value does not exist it returns FALSE, or whatever you've specified as the default value via the third parameter.  Example:</p>
 
 <code>
 $array = array('color' => 'red', 'shape' => 'round', 'size' => '');<br />
@@ -86,7 +86,7 @@
 
 <h2>random_element()</h2>
 
-<p>Takes an array as input and returns a random element from it. Usage example:</p>
+<p>Takes an array as input and returns a random element from it.  Usage example:</p>
 
 <code>$quotes = array(<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"I find that the harder I work, the more luck I seem to have. - Thomas Jefferson",<br />
@@ -102,8 +102,8 @@
 
 <h2>elements()</h2>
 
-<p>Lets you fetch a number of items from an array. The function tests whether each of the array indices is set. If an index does not exist
-it is set to FALSE, or whatever you've specified as the default value via the third parameter. Example:</p>
+<p>Lets you fetch a number of items from an array.  The function tests whether each of the array indices is set.  If an index does not exist
+it is set to FALSE, or whatever you've specified as the default value via the third parameter.  Example:</p>
 
 <code>
 $array = array(<br />
@@ -142,7 +142,7 @@
 );
 </code>
 
-<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models. This prevents users from
+<p>This is useful when sending the <kbd>$_POST</kbd> array to one of your Models.  This prevents users from
 sending additional POST data to be entered into your tables:</p>
 
 <code>
diff --git a/user_guide/helpers/captcha_helper.html b/user_guide/helpers/captcha_helper.html
index 3c6fa11..2fd5a55 100644
--- a/user_guide/helpers/captcha_helper.html
+++ b/user_guide/helpers/captcha_helper.html
@@ -83,7 +83,7 @@
 <code>&lt;img src=&quot;http://example.com/captcha/12345.jpg&quot; width=&quot;140&quot; height=&quot;50&quot; /&gt;</code></p>
 
 	<p>The "time" is the micro timestamp used as the image name without the file
-	extension. It will be a number like this: 1139612155.3422</p>
+	extension.  It will be a number like this:  1139612155.3422</p>
 
 	<p>The "word" is the word that appears in the captcha image, which if not
 	supplied to the function, will be a random string.</p>
@@ -109,13 +109,13 @@
 		<li>The captcha function requires the GD image library.</li>
 		<li>Only the img_path and img_url are required.</li>
 		<li>If a "word" is not supplied, the function will generate a random
-		ASCII string. You might put together your own word library that
+		ASCII string.  You might put together your own word library that
 		you can draw randomly from.</li>
 		<li>If you do not specify a path to a TRUE TYPE font, the native ugly GD
 		font will be used.</li>
 		<li>The "captcha" folder must be writable (666, or 777)</li>
 		<li>The "expiration" (in seconds) signifies how long an image will
-		remain in the captcha folder before it will be deleted. The default
+		remain in the captcha folder before it will be deleted.  The default
 		is two hours.</li>
 	</ul>
 
@@ -137,7 +137,7 @@
 &nbsp;KEY `word` (`word`)<br />
 );</code>
 
-	<p>Here is an example of usage with a database. On the page where the CAPTCHA will be shown you'll have something like this:</p>
+	<p>Here is an example of usage with a database.  On the page where the CAPTCHA will be shown you'll have something like this:</p>
 
 <code>$this-&gt;load-&gt;helper(&#x27;captcha&#x27;);<br />
 $vals = array(<br />
diff --git a/user_guide/helpers/cookie_helper.html b/user_guide/helpers/cookie_helper.html
index 9879653..34faadb 100644
--- a/user_guide/helpers/cookie_helper.html
+++ b/user_guide/helpers/cookie_helper.html
@@ -70,20 +70,20 @@
 
 <h2>set_cookie()</h2>
 
-<p>This helper function gives you view file friendly syntax to set browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->set_cookie().</p>
+<p>This helper function gives you view file friendly syntax to set browser cookies.  Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->set_cookie().</p>
 
 <h2>get_cookie()</h2>
 
-<p>This helper function gives you view file friendly syntax to get browser cookies. Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->cookie().</p>
+<p>This helper function gives you view file friendly syntax to get browser cookies.  Refer to the <a href="../libraries/input.html">Input class</a> for a description of use, as this function is an alias to $this->input->cookie().</p>
 
 
 <h2>delete_cookie()</h2>
 
-<p>Lets you delete a cookie. Unless you've set a custom path or other values, only the name of the cookie is needed:</p>
+<p>Lets you delete a cookie.  Unless you've set a custom path or other values, only the name of the cookie is needed:</p>
 
 <code>delete_cookie("name");</code>
 
-<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters. You can submit an array
+<p>This function is otherwise identical to <dfn>set_cookie()</dfn>, except that it does not have the value and expiration parameters.  You can submit an array
 of values in the first parameter or you can set discrete parameters.</p>
 
 <code>delete_cookie($name, $domain, $path, $prefix)</code>
diff --git a/user_guide/helpers/date_helper.html b/user_guide/helpers/date_helper.html
index a293342..44096ff 100644
--- a/user_guide/helpers/date_helper.html
+++ b/user_guide/helpers/date_helper.html
@@ -72,7 +72,7 @@
 <h2>now()</h2>
 
 <p>Returns the current time as a Unix timestamp, referenced either to your server's local time or GMT, based on the "time reference"
-setting in your config file. If you do not intend to set your master time reference to GMT (which you'll typically do if you
+setting in your config file.  If you do not intend to set your master time reference to GMT (which you'll typically do if you
 run a site that lets each user set their own timezone settings) there is no benefit to using this function over PHP's time() function.
 </p>
 
@@ -82,10 +82,10 @@
 <h2>mdate()</h2>
 
 <p>This function is identical to PHPs <a href="http://www.php.net/date">date()</a> function, except that it lets you
-use MySQL style date codes, where each code letter is preceded with a percent sign: %Y %m %d etc.</p>
+use MySQL style date codes, where each code letter is preceded with a percent sign:  %Y %m %d etc.</p>
 
 <p>The benefit of doing dates this way is that you don't have to worry about escaping any characters that
-are not date codes, as you would normally have to do with the date() function. Example:</p>
+are not date codes, as you would normally have to do with the date() function.  Example:</p>
 
 <code>$datestring = "Year: %Y Month: %m Day: %d - %h:%i %a";<br />
 $time = time();<br />
@@ -149,7 +149,7 @@
 	<tr>
 		<td>DATE_RFC1123</td>
 		<td>RFC 1123</td>
-		<td>Sun, 14 Aug 2005 16:13:03 UTC</td>
+		<td>Sun, 14 Aug 2005 16:13:03 UTC</td>	
 	</tr>
 	<tr>
 		<td>DATE_RFC2822</td>
@@ -170,7 +170,7 @@
 
 <h2>local_to_gmt()</h2>
 
-<p>Takes a Unix timestamp as input and returns it as GMT. Example:</p>
+<p>Takes a Unix timestamp as input and returns it as GMT.  Example:</p>
 
 <code>$now = time();<br />
 <br />
@@ -180,11 +180,11 @@
 <h2>gmt_to_local()</h2>
 
 <p>Takes a Unix timestamp (referenced to GMT) as input, and converts it to a localized timestamp based on the
-timezone and Daylight Saving time submitted. Example:</p>
+timezone and Daylight Saving time submitted.  Example:</p>
 
 <code>
 $timestamp = '1140153693';<br />
-$timezone = 'UM8';<br />
+$timezone  = 'UM8';<br />
 $daylight_saving = TRUE;<br />
 <br />
 echo gmt_to_local($timestamp, $timezone, $daylight_saving);</code>
@@ -208,7 +208,7 @@
 
 <p>This can be useful if you need to display a date in a form field for submission.</p>
 
-<p>The time can be formatted with or without seconds, and it can be set to European or US format. If only
+<p>The time can be formatted with or without seconds, and it can be set to European or US format.  If only
 the timestamp is submitted it will return the time without seconds formatted for the U.S. Examples:</p>
 
 <code>$now = time();<br />
@@ -222,9 +222,9 @@
 
 <h2>human_to_unix()</h2>
 
-<p>The opposite of the above function. Takes a "human" time as input and returns it as Unix. This function is
-useful if you accept "human" formatted dates submitted via a form. Returns FALSE (boolean) if
-the date string passed to it is not formatted as indicated above. Example:</p>
+<p>The opposite of the above function.  Takes a "human" time as input and returns it as Unix.  This function is
+useful if you accept "human" formatted dates submitted via a form.  Returns FALSE (boolean) if
+the date string passed to it is not formatted as indicated above.  Example:</p>
 
 <code>$now = time();<br />
 <br />
@@ -242,9 +242,9 @@
 
 <code>1 Year, 10 Months, 2 Weeks, 5 Days, 10 Hours, 16 Minutes</code>
 
-<p>The first parameter must contain a Unix timestamp. The second parameter must contain a
-timestamp that is greater that the first timestamp. If the second parameter empty, the current time will be used. The most common purpose
-for this function is to show how much time has elapsed from some point in time in the past to now. Example:</p>
+<p>The first parameter must contain a Unix timestamp.  The second parameter must contain a
+timestamp that is greater that the first timestamp.  If the second parameter empty, the current time will be used.  The most common purpose
+for this function is to show how much time has elapsed from some point in time in the past to now.  Example:</p>
 
 <code>$post_date = '1079621429';<br />
 $now = time();<br />
@@ -256,7 +256,7 @@
 
 <h2>days_in_month()</h2>
 
-<p>Returns the number of days in a given month/year. Takes leap years into account. Example:</p>
+<p>Returns the number of days in a given month/year. Takes leap years into account.  Example:</p>
 <code>echo days_in_month(06, 2005);</code>
 
 <p>If the second parameter is empty, the current year will be used.</p>
@@ -304,7 +304,7 @@
 
 <p>This menu is useful if you run a membership site in which your users are allowed to set their local timezone value.</p>
 
-<p>The first parameter lets you set the "selected" state of the menu. For example, to set Pacific time as the default you will do this:</p>
+<p>The first parameter lets you set the "selected" state of the menu.  For example, to set Pacific time as the default you will do this:</p>
 
 <code>echo timezone_menu('UM8');</code>
 
diff --git a/user_guide/helpers/directory_helper.html b/user_guide/helpers/directory_helper.html
index 2086fe1..1a2f28d 100644
--- a/user_guide/helpers/directory_helper.html
+++ b/user_guide/helpers/directory_helper.html
@@ -78,12 +78,12 @@
 
 <p class="important"><strong>Note:</strong> Paths are almost always relative to your main index.php file.</p>
 
-<p>Sub-folders contained within the directory will be mapped as well. If you wish to control the recursion depth,
+<p>Sub-folders contained within the directory will be mapped as well.  If you wish to control the recursion depth,
 you can do so using the second parameter (integer). A depth of 1 will only map the top level directory:</p>
 
 <code>$map = directory_map('./mydirectory/', 1);</code>
 
-<p>By default, hidden files will not be included in the returned array. To override this behavior,
+<p>By default, hidden files will not be included in the returned array.  To override this behavior,
 you may set a third parameter to <var>true</var> (boolean):</p>
 
 <code>$map = directory_map('./mydirectory/', FALSE, TRUE);</code>
diff --git a/user_guide/helpers/file_helper.html b/user_guide/helpers/file_helper.html
index 2d06fa2..c372354 100644
--- a/user_guide/helpers/file_helper.html
+++ b/user_guide/helpers/file_helper.html
@@ -69,11 +69,11 @@
 
 <h2>read_file('<var>path</var>')</h2>
 
-<p>Returns the data contained in the file specified in the path. Example:</p>
+<p>Returns the data contained in the file specified in the path.  Example:</p>
 
 <code>$string = read_file('./path/to/file.php');</code>
 
-<p>The path can be a relative or full server path. Returns FALSE (boolean) on failure.</p>
+<p>The path can be a relative or full server path.  Returns FALSE (boolean) on failure.</p>
 
 <p class="important"><strong>Note:</strong> The path is relative to your main site index.php file, NOT your controller or view files.
 CodeIgniter uses a front controller so paths are always relative to the main site index.</p>
@@ -83,7 +83,7 @@
 
 <h2>write_file('<var>path</var>', <kbd>$data</kbd>)</h2>
 
-<p>Writes data to the file specified in the path. If the file does not exist the function will create it. Example:</p>
+<p>Writes data to the file specified in the path.  If the file does not exist the function will create it. Example:</p>
 
 <code>
 $data = 'Some file data';<br />
@@ -101,7 +101,7 @@
 
 <code>write_file('./path/to/file.php', $data, <var>'r+'</var>);</code>
 
-<p>The default mode is <kbd>wb</kbd>. Please see the <a href="http://php.net/fopen">PHP user guide</a> for mode options.</p>
+<p>The default mode is <kbd>wb</kbd>.  Please see the <a href="http://php.net/fopen">PHP user guide</a> for mode options.</p>
 
 <p>Note: In order for this function to write data to a file its file permissions must be set such that it is writable (666, 777, etc.).
 If the file does not already exist, the directory containing it must be writable.</p>
@@ -111,7 +111,7 @@
 
 <h2>delete_files('<var>path</var>')</h2>
 
-<p>Deletes ALL files contained in the supplied path. Example:</p>
+<p>Deletes ALL files contained in the supplied path.  Example:</p>
 <code>delete_files('./path/to/directory/');</code>
 
 <p>If the second parameter is set to <kbd>true</kbd>, any directories contained within the supplied root path will be deleted as well. Example:</p>
@@ -127,12 +127,12 @@
 
 <h2>get_dir_file_info('<var>path/to/directory/</var>', <kbd>$top_level_only</kbd> = TRUE)</h2>
 
-<p>Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions. Sub-folders contained within the specified path are only read if forced
+<p>Reads the specified directory and builds an array containing the filenames, filesize, dates, and permissions.  Sub-folders contained within the specified path are only read if forced
 	by sending the second parameter, <kbd>$top_level_only</kbd> to <samp>FALSE</samp>, as this can be an intensive operation.</p>
 
 <h2>get_file_info('<var>path/to/file</var>', <kbd>$file_information</kbd>)</h2>
 
-<p>Given a file and path, returns the name, path, size, date modified. Second parameter allows you to explicitly declare what information you want returned; options are: name, server_path, size, date, readable, writable, executable, fileperms. Returns FALSE if the file cannot be found.</p>
+<p>Given a file and path, returns the name, path, size, date modified. Second parameter allows you to explicitly declare what information you want returned; options are: name, server_path, size, date, readable, writable, executable, fileperms.  Returns FALSE if the file cannot be found.</p>
 
 <p class="important"><strong>Note:</strong> The &quot;writable&quot; uses the PHP function is_writable() which is known to have issues on the IIS webserver. Consider using fileperms instead, which returns information from PHP's fileperms() function.</p>
 <h2>get_mime_by_extension('<var>file</var>')</h2>
@@ -142,7 +142,7 @@
 <code>$file = &quot;somefile.png&quot;;<br />
 echo $file . ' is has a mime type of ' . get_mime_by_extension($file);</code>
 </p>
-<p class="critical"><strong>Note:</strong> This is not an accurate way of determining file mime types, and is here strictly as a convenience. It should not be used for security.</p>
+<p class="critical"><strong>Note:</strong> This is not an accurate way of determining file mime types, and is here strictly as a convenience. It should not be  used for security.</p>
 
 <h2>symbolic_permissions(<kbd>$perms</kbd>)</h2>
 
diff --git a/user_guide/helpers/form_helper.html b/user_guide/helpers/form_helper.html
index b4a5730..87e3c28 100644
--- a/user_guide/helpers/form_helper.html
+++ b/user_guide/helpers/form_helper.html
@@ -72,7 +72,7 @@
 
 <h2>form_open()</h2>
 
-<p>Creates an opening form tag with a base URL <strong>built from your config preferences</strong>. It will optionally let you
+<p>Creates an opening form tag with a base URL <strong>built from your config preferences</strong>.  It will optionally let you
 add form attributes and hidden input fields, and will always add the attribute <kbd>accept-charset</kbd> based on the charset value in your config file.</p>
 
 <p>The main benefit of using this tag rather than hard coding your own HTML is that it permits your site to be more portable
@@ -122,7 +122,7 @@
 
 <h2>form_hidden()</h2>
 
-<p>Lets you generate hidden input fields. You can either submit a name/value string to create one field:</p>
+<p>Lets you generate hidden input fields.  You can either submit a name/value string to create one field:</p>
 
 <code>form_hidden('username', 'johndoe');<br />
 <br />
@@ -149,7 +149,7 @@
 
 <h2>form_input()</h2>
 
-<p>Lets you generate a standard text input field. You can minimally pass the field name and value in the first
+<p>Lets you generate a standard text input field.  You can minimally pass the field name and value in the first
 and second parameter:</p>
 
 <code>echo form_input('username', 'johndoe');</code>
@@ -196,9 +196,9 @@
 
 <h2>form_dropdown()</h2>
 
-<p>Lets you create a standard drop-down field. The first parameter will contain the name of the field,
+<p>Lets you create a standard drop-down field.  The first parameter will contain the name of the field,
 the second parameter will contain an associative array of options, and the third parameter will contain the
-value you wish to be selected. You can also pass an array of multiple items through the third parameter, and CodeIgniter will create a multiple select for you. Example:</p>
+value you wish to be selected.  You can also pass an array of multiple items through the third parameter, and CodeIgniter will create a multiple select for you. Example:</p>
 
 <code>$options = array(<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'small'&nbsp;&nbsp;=> 'Small Shirt',<br />
@@ -215,7 +215,7 @@
 <br />
 &lt;select name=&quot;shirts&quot;&gt;<br />
 &lt;option value=&quot;small&quot;&gt;Small Shirt&lt;/option&gt;<br />
-&lt;option value=&quot;med&quot;&gt;Medium Shirt&lt;/option&gt;<br />
+&lt;option value=&quot;med&quot;&gt;Medium  Shirt&lt;/option&gt;<br />
 &lt;option value=&quot;large&quot; selected=&quot;selected&quot;&gt;Large Shirt&lt;/option&gt;<br />
 &lt;option value=&quot;xlarge&quot;&gt;Extra Large Shirt&lt;/option&gt;<br />
 &lt;/select&gt;<br />
@@ -226,7 +226,7 @@
 <br />
 &lt;select name=&quot;shirts&quot; multiple=&quot;multiple&quot;&gt;<br />
 &lt;option value=&quot;small&quot; selected=&quot;selected&quot;&gt;Small Shirt&lt;/option&gt;<br />
-&lt;option value=&quot;med&quot;&gt;Medium Shirt&lt;/option&gt;<br />
+&lt;option value=&quot;med&quot;&gt;Medium  Shirt&lt;/option&gt;<br />
 &lt;option value=&quot;large&quot; selected=&quot;selected&quot;&gt;Large Shirt&lt;/option&gt;<br />
 &lt;option value=&quot;xlarge&quot;&gt;Extra Large Shirt&lt;/option&gt;<br />
 &lt;/select&gt;</code>
@@ -243,9 +243,9 @@
 
 <h2>form_multiselect()</h2>
 
-<p>Lets you create a standard multiselect field. The first parameter will contain the name of the field,
+<p>Lets you create a standard multiselect field.  The first parameter will contain the name of the field,
 the second parameter will contain an associative array of options, and the third parameter will contain the
-value or values you wish to be selected. The parameter usage is identical to using <kbd>form_dropdown()</kbd> above,
+value or values you wish to be selected.  The parameter usage is identical to using <kbd>form_dropdown()</kbd> above,
 except of course that the name of the field will need to use POST array syntax, e.g. <samp>foo[]</samp>.</p>
 
 
@@ -267,7 +267,7 @@
 &lt;/fieldset&gt;</code>
 <p>Similar to other functions, you can submit an associative array in the second parameter if you prefer to set additional attributes. </p>
 <p><code>$attributes = array('id' =&gt; 'address_info', 'class' =&gt; 'address_info');<br />
-  echo form_fieldset('Address Information', $attributes);<br />
+    echo form_fieldset('Address Information', $attributes);<br />
 echo &quot;&lt;p&gt;fieldset content here&lt;/p&gt;\n&quot;;<br />
 echo form_fieldset_close(); <br />
 <br />
@@ -277,8 +277,8 @@
 &lt;p&gt;form content here&lt;/p&gt; <br />
 &lt;/fieldset&gt;</code></p>
 <h2>form_fieldset_close()</h2>
-<p>Produces a closing &lt;/fieldset&gt; tag. The only advantage to using this function is it permits you to pass data to it
-  which will be added below the tag. For example:</p>
+<p>Produces a closing &lt;/fieldset&gt; tag.  The only advantage to using this function is it permits you to pass data to it
+    which will be added below the tag.  For example:</p>
 <code>$string = &quot;&lt;/div&gt;&lt;/div&gt;&quot;;<br />
 <br />
 echo form_fieldset_close($string);<br />
@@ -309,7 +309,7 @@
 // Would produce:<br /><br />
 &lt;input type="checkbox" name="newsletter" id="newsletter" value="accept" checked="checked" style="margin:10px" /></code>
 
-<p>As with other functions, if you would like the tag to contain additional data, like JavaScript, you can pass it as a string in the
+<p>As with other functions, if you would like the tag to contain  additional data, like JavaScript, you can pass it as a string in the
 fourth parameter:</p>
 
 <code>$js = 'onClick="some_function()"';<br />
@@ -330,7 +330,7 @@
 <br />
 &lt;input type=&quot;submit&quot; name=&quot;mysubmit&quot; value=&quot;Submit Post!&quot; /&gt;</code>
 <p>Similar to other functions, you can submit an associative array in the first parameter if you prefer to set your own attributes.
-  The third parameter lets you add extra data to your form, like JavaScript.</p>
+    The third parameter lets you add extra data to your form, like JavaScript.</p>
 <h2>form_label()</h2>
 <p>Lets you generate a &lt;label&gt;. Simple example:</p>
 <code>echo form_label('What is your Name', 'username');<br />
@@ -338,13 +338,13 @@
 // Would produce:
 <br />
 &lt;label for=&quot;username&quot;&gt;What is your Name&lt;/label&gt;</code>
-<p>Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes.  </p>
+<p>Similar to other functions, you can submit an associative array in the third parameter if you prefer to set additional attributes.    </p>
 <p><code>$attributes = array(<br />
 &nbsp;&nbsp;&nbsp;&nbsp;'class' =&gt; 'mycustomclass',<br />
 &nbsp;&nbsp;&nbsp;&nbsp;'style' =&gt; 'color: #000;',<br />
 );<br />
-  echo form_label('What is your Name', 'username', $attributes);<br />
-    <br />
+    echo form_label('What is your Name', 'username', $attributes);<br />
+        <br />
 // Would produce: <br />
 &lt;label for=&quot;username&quot; class=&quot;mycustomclass&quot; style=&quot;color: #000;&quot;&gt;What is your Name&lt;/label&gt;</code></p>
 <h2>form_reset()</h2>
@@ -386,8 +386,8 @@
 
 <h2>form_close()</h2>
 
-<p>Produces a closing &lt;/form> tag. The only advantage to using this function is it permits you to pass data to it
-which will be added below the tag. For example:</p>
+<p>Produces a closing &lt;/form> tag.  The only advantage to using this function is it permits you to pass data to it
+which will be added below the tag.  For example:</p>
 
 <code>$string = "&lt;/div>&lt;/div>";<br />
 <br />
@@ -404,7 +404,7 @@
 
 <h2>form_prep()</h2>
 
-<p>Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form. Consider this example:</p>
+<p>Allows you to safely use HTML and characters such as quotes within form elements without breaking out of the form.  Consider this example:</p>
 
 <code>$string = 'Here is a string containing <strong>"quoted"</strong> text.';<br />
 <br />
@@ -431,7 +431,7 @@
 
 <h2>set_select()</h2>
 
-<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter
+<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected.  The first parameter
 must contain the name of the select menu, the second parameter must contain the value of
 each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p>
 
@@ -439,16 +439,16 @@
 
 <code>
 &lt;select name="myselect"><br />
-&lt;option value="one" <dfn>&lt;?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br />
-&lt;option value="two" <dfn>&lt;?php echo set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br />
-&lt;option value="three" <dfn>&lt;?php echo set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br />
+&lt;option value="one" <dfn>&lt;?php echo  set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br />
+&lt;option value="two" <dfn>&lt;?php echo  set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br />
+&lt;option value="three" <dfn>&lt;?php echo  set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br />
 &lt;/select>
 </code>
 
 
 <h2>set_checkbox()</h2>
 
-<p>Permits you to display a checkbox in the state it was submitted. The first parameter
+<p>Permits you to display a checkbox in the state it was submitted.  The first parameter
 must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p>
 
 <code>&lt;input type="checkbox" name="mycheck" value="1" <dfn>&lt;?php echo set_checkbox('mycheck', '1'); ?></dfn> /><br />
@@ -459,8 +459,8 @@
 
 <p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p>
 
-<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br />
-&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo set_radio('myradio', '2'); ?></dfn> /></code>
+<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo  set_radio('myradio', '1', TRUE); ?></dfn> /><br />
+&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo  set_radio('myradio', '2'); ?></dfn> /></code>
 
 
 
diff --git a/user_guide/helpers/html_helper.html b/user_guide/helpers/html_helper.html
index 665081f..308013d 100644
--- a/user_guide/helpers/html_helper.html
+++ b/user_guide/helpers/html_helper.html
@@ -84,10 +84,10 @@
 <p>The above would produce: &lt;br />&lt;br />&lt;br /></p>
 
 <h2><a name="heading"></a>heading()</h2>
-<p>Lets you create HTML &lt;h1> tags. The first parameter will contain the data, the
-second the size of the heading. Example:</p>
+<p>Lets you create HTML &lt;h1> tags.  The first parameter will contain the data, the
+second the size of the heading.  Example:</p>
 <code>echo heading('Welcome!', 3);</code>
-<p>The above would produce: &lt;h3>Welcome!&lt;/h3></p>
+<p>The above would produce:  &lt;h3>Welcome!&lt;/h3></p>
 
 <p>Additionally, in order to add attributes to the heading tag such as HTML classes, ids or inline styles, a third parameter is available.</p>
 <code>echo heading('Welcome!', 3, 'class="pink"')</code>
@@ -95,7 +95,7 @@
 
 
 <h2><a name="img"></a>img()</h2>
-<p>Lets you create HTML &lt;img /&gt; tags. The first parameter contains the image source. Example:</p>
+<p>Lets you create HTML &lt;img /&gt; tags.  The first parameter  contains the image source. Example:</p>
 <code>echo img('images/picture.jpg');<br />
 // gives &lt;img src=&quot;http://site.com/images/picture.jpg&quot; /&gt;</code>
 <p>There is an optional second parameter that is a TRUE/FALSE value that specifics if the src should have the page specified by $config['index_page'] added to the address it creates. Presumably, this would be if you were using a media controller.</p>
@@ -116,7 +116,7 @@
 	// &lt;img src=&quot;http://site.com/index.php/images/picture.jpg&quot; alt=&quot;Me, demonstrating how to eat 4 slices of pizza at one time&quot; class=&quot;post_images&quot; width=&quot;200&quot; height=&quot;200&quot; title=&quot;That was quite a night&quot; rel=&quot;lightbox&quot; /&gt;</code></p>
 
 <h2><a name="link_tag"></a>link_tag()</h2>
-<p>Lets you create HTML &lt;link /> tags. This is useful for stylesheet links, as well as other links. The parameters are href, with optional rel, type, title, media and index_page. index_page is a TRUE/FALSE value that specifics if the href should have the page specified by $config['index_page'] added to the address it creates.<code>
+<p>Lets you create HTML &lt;link /> tags.  This is useful for stylesheet links, as well as other links. The parameters are href, with optional rel, type, title, media and index_page. index_page is a TRUE/FALSE value that specifics if the href should have the page specified by $config['index_page'] added to the address it creates.<code>
 echo link_tag('css/mystyles.css');<br />
 // gives &lt;link href=&quot;http://site.com/css/mystyles.css&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;</code></p>
 <p>Further examples:</p>
@@ -271,20 +271,20 @@
 
 <h2><a name="meta"></a>meta()</h2>
 
-<p>Helps you generate meta tags. You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:</p>
+<p>Helps you generate meta tags.  You can pass strings to the function, or simple arrays, or multidimensional ones. Examples:</p>
 
 <code>
 echo meta('description', 'My Great site');<br />
-// Generates: &lt;meta name="description" content="My Great Site" /><br />
+// Generates:  &lt;meta name="description" content="My Great Site" /><br />
 <br /><br />
 
-echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter. Can be "equiv" or "name"<br />
-// Generates: &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /><br />
+echo meta('Content-type', 'text/html; charset=utf-8', 'equiv'); // Note the third parameter.  Can be "equiv" or "name"<br />
+// Generates:  &lt;meta http-equiv="Content-type" content="text/html; charset=utf-8" /><br />
 
 <br /><br />
 
 echo meta(array('name' => 'robots', 'content' => 'no-cache'));<br />
-// Generates: &lt;meta name="robots" content="no-cache" /><br />
+// Generates:  &lt;meta name="robots" content="no-cache" /><br />
 
 <br /><br />
 
@@ -298,7 +298,7 @@
 <br />
 echo meta($meta);
 <br />
-// Generates: <br />
+// Generates:  <br />
 // &lt;meta name="robots" content="no-cache" /><br />
 // &lt;meta name="description" content="My Great Site" /><br />
 // &lt;meta name="keywords" content="love, passion, intrigue, deception" /><br />
@@ -319,7 +319,7 @@
 // &lt;!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"&gt;
 </code>
 
-<p>The following is a list of doctype choices. These are configurable, and pulled from <samp>application/config/doctypes.php</samp></p>
+<p>The following is a list of doctype choices.  These are configurable, and pulled from <samp>application/config/doctypes.php</samp></p>
 
 <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
 	<tr>
diff --git a/user_guide/helpers/inflector_helper.html b/user_guide/helpers/inflector_helper.html
index 0876754..221c059 100644
--- a/user_guide/helpers/inflector_helper.html
+++ b/user_guide/helpers/inflector_helper.html
@@ -71,7 +71,7 @@
 
 <h2>singular()</h2>
 
-<p>Changes a plural word to singular. Example:</p>
+<p>Changes a plural word to singular.  Example:</p>
 
 <code>
 $word = "dogs";<br />
@@ -81,7 +81,7 @@
 
 <h2>plural()</h2>
 
-<p>Changes a singular word to plural. Example:</p>
+<p>Changes a singular word to plural.  Example:</p>
 
 <code>
 $word = "dog";<br />
@@ -94,7 +94,7 @@
 echo plural($word, TRUE); // Returns &quot;passes&quot; </code>
 
 <h2>camelize()</h2>
-<p>Changes a string of words separated by spaces or underscores to camel case. Example:</p>
+<p>Changes a string of words separated by spaces or underscores to camel case.  Example:</p>
 
 <code>
 $word = "my_dog_spot";<br />
@@ -104,7 +104,7 @@
 
 <h2>underscore()</h2>
 
-<p>Takes multiple words separated by spaces and underscores them. Example:</p>
+<p>Takes multiple words separated by spaces and underscores them.  Example:</p>
 
 <code>
 $word = "my dog spot";<br />
@@ -114,7 +114,7 @@
 
 <h2>humanize()</h2>
 
-<p>Takes multiple words separated by underscores and adds spaces between them. Each word is capitalized. Example:</p>
+<p>Takes multiple words separated by underscores and adds spaces between them.  Each word is capitalized. Example:</p>
 
 <code>
 $word = "my_dog_spot";<br />
diff --git a/user_guide/helpers/language_helper.html b/user_guide/helpers/language_helper.html
index e10733b..3b3b87d 100644
--- a/user_guide/helpers/language_helper.html
+++ b/user_guide/helpers/language_helper.html
@@ -73,7 +73,7 @@
 
 <p>This function returns a line of text from a loaded language file with simplified syntax
 	that may be more desirable for view files than calling <kbd>$this-&gt;lang-&gt;line()</kbd>.
-	The optional second parameter will also output a form label for you. Example:</p>
+	The optional second parameter will also output a form label for you.  Example:</p>
 
 <code>echo lang('<samp>language_key</samp>', '<samp>form_item_id</samp>');<br />
 // becomes &lt;label for="form_item_id"&gt;language_key&lt;/label&gt;</code>
diff --git a/user_guide/helpers/number_helper.html b/user_guide/helpers/number_helper.html
index a04f37c..51a4521 100644
--- a/user_guide/helpers/number_helper.html
+++ b/user_guide/helpers/number_helper.html
@@ -71,7 +71,7 @@
 
 <h2>byte_format()</h2>
 
-<p>Formats a numbers as bytes, based on size, and adds the appropriate suffix. Examples:</p>
+<p>Formats a numbers as bytes, based on size, and adds the appropriate suffix.  Examples:</p>
 
 <code>
 echo byte_format(456); // Returns 456 Bytes<br />
diff --git a/user_guide/helpers/security_helper.html b/user_guide/helpers/security_helper.html
index 49e0365..e0cace3 100644
--- a/user_guide/helpers/security_helper.html
+++ b/user_guide/helpers/security_helper.html
@@ -71,19 +71,19 @@
 
 <h2>xss_clean()</h2>
 
-<p>Provides Cross Site Script Hack filtering. This function is an alias to the one in the
-<a href="../libraries/input.html">Input class</a>. More info can be found there.</p>
+<p>Provides Cross Site Script Hack filtering.  This function is an alias to the one in the
+<a href="../libraries/input.html">Input class</a>.  More info can be found there.</p>
 
 
 <h2>sanitize_filename()</h2>
 
-<p>Provides protection against directory traversal. This function is an alias to the one in the
-<a href="../libraries/security.html">Security class</a>. More info can be found there.</p>
+<p>Provides protection against directory traversal.  This function is an alias to the one in the
+<a href="../libraries/security.html">Security class</a>.  More info can be found there.</p>
 
 
 <h2>do_hash()</h2>
 
-<p>Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords. Will create SHA1 by default. Examples:</p>
+<p>Permits you to create SHA1 or MD5 one way hashes suitable for encrypting passwords.  Will create SHA1 by default. Examples:</p>
 
 <code>
 $str = do_hash($str); // SHA1<br />
@@ -91,13 +91,13 @@
 $str = do_hash($str, 'md5'); // MD5
 </code>
 
-<p class="important"><strong>Note:</strong> This function was formerly named <kbd>dohash()</kbd>, which has been deprecated in favour of <kbd>do_hash()</kbd>.</p>
+<p class="important"><strong>Note:</strong>  This function was formerly named <kbd>dohash()</kbd>, which has been deprecated in favour of <kbd>do_hash()</kbd>.</p>
 
 
 
 <h2>strip_image_tags()</h2>
 
-<p>This is a security function that will strip image tags from a string. It leaves the image URL as plain text.</p>
+<p>This is a security function that will strip image tags from a string.  It leaves the image URL as plain text.</p>
 
 <code>$string = strip_image_tags($string);</code>
 
diff --git a/user_guide/helpers/smiley_helper.html b/user_guide/helpers/smiley_helper.html
index 4668f10..408df17 100644
--- a/user_guide/helpers/smiley_helper.html
+++ b/user_guide/helpers/smiley_helper.html
@@ -83,7 +83,7 @@
 requires that you first download and install the smiley images, then create a controller and the View as described.</p>
 
 <p class="important"><strong>Important:</strong> Before you begin, please <a href="http://codeigniter.com/download_files/smileys.zip">download the smiley images</a> and put them in
-a publicly accessible place on your server. This helper also assumes you have the smiley replacement array located at
+a publicly accessible place on your server.  This helper also assumes you have the smiley replacement array located at
 <dfn>application/config/smileys.php</dfn></p>
 
 
@@ -166,7 +166,7 @@
 
 <h2>get_clickable_smileys()</h2>
 
-<p>Returns an array containing your smiley images wrapped in a clickable link. You must supply the URL to your smiley folder
+<p>Returns an array containing your smiley images wrapped in a clickable link.  You must supply the URL to your smiley folder
 and a field id or field alias.</p>
 
 <code>$image_array = get_smiley_links("http://example.com/images/smileys/", "comment");</code>
@@ -187,10 +187,10 @@
 <h2>parse_smileys()</h2>
 
 <p>Takes a string of text as input and replaces any contained plain text smileys into the image
-equivalent. The first parameter must contain your string, the second must contain the URL to your smiley folder:</p>
+equivalent.  The first parameter must contain your string, the second must contain  the URL to your smiley folder:</p>
 
 <code>
-$str = 'Here are some simileys: :-) ;-)';
+$str = 'Here are some simileys: :-)  ;-)';
 
 $str = parse_smileys($str, "http://example.com/images/smileys/");
 
diff --git a/user_guide/helpers/string_helper.html b/user_guide/helpers/string_helper.html
index 6fc2cf5..169ee4e 100644
--- a/user_guide/helpers/string_helper.html
+++ b/user_guide/helpers/string_helper.html
@@ -70,9 +70,9 @@
 
 <h2>random_string()</h2>
 
-<p>Generates a random string based on the type and length you specify. Useful for creating passwords or generating random hashes.</p>
+<p>Generates a random string based on the type and length you specify.  Useful for creating passwords or generating random hashes.</p>
 
-<p>The first parameter specifies the type of string, the second parameter specifies the length. The following choices are available:</p>
+<p>The first parameter specifies the type of string, the second parameter specifies the length.  The following choices are available:</p>
 
  alpha, alunum, numeric, nozero, unique, md5, encrypt and sha1
 <ul>
@@ -92,7 +92,7 @@
 
 <h2>alternator()</h2>
 
-<p>Allows two or more items to be alternated between, when cycling through a loop. Example:</p>
+<p>Allows two or more items to be alternated between, when cycling through a loop.  Example:</p>
 
 <code>for ($i = 0; $i < 10; $i++)<br />
 {<br />
diff --git a/user_guide/helpers/text_helper.html b/user_guide/helpers/text_helper.html
index 3c83f3d..f71d878 100644
--- a/user_guide/helpers/text_helper.html
+++ b/user_guide/helpers/text_helper.html
@@ -71,22 +71,22 @@
 
 <h2>word_limiter()</h2>
 
-<p>Truncates a string to the number of <strong>words</strong> specified. Example:</p>
+<p>Truncates a string to the number of <strong>words</strong> specified.  Example:</p>
 
 <code>
 $string = "Here is a nice text string consisting of eleven words.";<br />
 <br />
 $string = word_limiter($string, 4);<br /><br />
 
-// Returns: Here is a nice&#8230;
+// Returns:  Here is a nice&#8230;
 </code>
 
-<p>The third parameter is an optional suffix added to the string. By default it adds an ellipsis.</p>
+<p>The third parameter is an optional suffix added to the string.  By default it adds an ellipsis.</p>
 
 
 <h2>character_limiter()</h2>
 
-<p>Truncates a string to the number of <strong>characters</strong> specified. It maintains the integrity
+<p>Truncates a string to the number of <strong>characters</strong> specified.  It maintains the integrity
 of words so the character count may be slightly more or less then what you specify. Example:</p>
 
 <code>
@@ -94,7 +94,7 @@
 <br />
 $string = character_limiter($string, 20);<br /><br />
 
-// Returns: Here is a nice text string&#8230;
+// Returns:  Here is a nice text string&#8230;
 </code>
 
 <p>The third parameter is an optional suffix added to the string, if undeclared this helper uses an ellipsis.</p>
@@ -125,9 +125,9 @@
 
 <h2>word_censor()</h2>
 
-<p>Enables you to censor words within a text string. The first parameter will contain the original string. The
-second will contain an array of words which you disallow. The third (optional) parameter can contain a replacement value
-for the words. If not specified they are replaced with pound signs: ####. Example:</p>
+<p>Enables you to censor words within a text string.  The first parameter will contain the original string.  The
+second will contain an array of words which you disallow.  The third (optional) parameter can contain a replacement value
+for the words.  If not specified they are replaced with pound signs: ####.  Example:</p>
 
 <code>
 $disallowed = array('darn', 'shucks', 'golly', 'phooey');<br />
@@ -137,7 +137,7 @@
 
 <h2>highlight_code()</h2>
 
-<p>Colorizes a string of code (PHP, HTML, etc.). Example:</p>
+<p>Colorizes a string of code (PHP, HTML, etc.).  Example:</p>
 
 <code>$string = highlight_code($string);</code>
 
@@ -146,9 +146,9 @@
 
 <h2>highlight_phrase()</h2>
 
-<p>Will highlight a phrase within a text string. The first parameter will contain the original string, the second will
-contain the phrase you wish to highlight. The third and fourth parameters will contain the opening/closing HTML tags
-you would like the phrase wrapped in. Example:</p>
+<p>Will highlight a phrase within a text string.  The first parameter will contain the original string, the second will
+contain the phrase you wish to highlight.  The third and fourth parameters will contain the opening/closing HTML tags
+you would like the phrase wrapped in.  Example:</p>
 
 <code>
 $string = "Here is a nice text string about nothing in particular.";<br />
@@ -164,7 +164,7 @@
 
 <h2>word_wrap()</h2>
 
-<p>Wraps text at the specified <strong>character</strong> count while maintaining complete words. Example:</p>
+<p>Wraps text at the specified <strong>character</strong> count while maintaining complete words.  Example:</p>
 
 <code>$string = "Here is a simple string of text that will help us demonstrate this function.";<br />
 <br />
@@ -180,8 +180,8 @@
 <h2>ellipsize()</h2>
 
 <p>This function will strip tags from a string, split it at a defined maximum length, and insert an ellipsis.</p>
-<p>The first parameter is the string to ellipsize, the second is the number of characters in the final string. The third parameter is where in the string the ellipsis should appear from 0 - 1, left to right. For example. a value of 1 will place the ellipsis at the right of the string, .5 in the middle, and 0 at the left.</p>
-<p>An optional forth parameter is the kind of ellipsis. By default, <samp>&amp;hellip;</samp> will be inserted.</p>
+<p>The first parameter is the string to ellipsize, the second is the number of characters in the final string. The third parameter is where in the string the ellipsis should appear from 0 - 1, left to right.  For example.  a value of 1 will place the ellipsis at the right of the string, .5 in the middle, and 0 at the left.</p>
+<p>An optional forth parameter is the kind of ellipsis.  By default, <samp>&amp;hellip;</samp> will be inserted.</p>
 
 <code>$str = 'this_string_is_entirely_too_long_and_might_break_my_design.jpg';<br />
 <br />
diff --git a/user_guide/helpers/typography_helper.html b/user_guide/helpers/typography_helper.html
index e75528f..00686a3 100644
--- a/user_guide/helpers/typography_helper.html
+++ b/user_guide/helpers/typography_helper.html
@@ -71,7 +71,7 @@
 
 <h2>auto_typography()</h2>
 
-<p>Formats text so that it is semantically and typographically correct HTML. Please see the <a href="../libraries/typography.html">Typography Class</a> for more info.</p>
+<p>Formats text so that it is semantically and typographically correct HTML.  Please see the <a href="../libraries/typography.html">Typography Class</a> for more info.</p>
 
 <p>Usage example:</p>
 
diff --git a/user_guide/helpers/url_helper.html b/user_guide/helpers/url_helper.html
index 0bcf1e7..d20f1b1 100644
--- a/user_guide/helpers/url_helper.html
+++ b/user_guide/helpers/url_helper.html
@@ -69,13 +69,13 @@
 
 <h2>site_url()</h2>
 
-<p>Returns your site URL, as specified in your config file. The index.php file (or whatever you have set as your
+<p>Returns your site URL, as specified in your config file.  The index.php file (or whatever you have set as your
 site <dfn>index_page</dfn> in your config file) will be added to the URL, as will any URI segments you pass to the function.</p>
 
 <p>You are encouraged to use this function any time you need to generate a local URL so that your pages become more portable
 in the event your URL changes.</p>
 
-<p>Segments can be optionally passed to the function as a string or an array. Here is a string example:</p>
+<p>Segments can be optionally passed to the function as a string or an array.  Here is a string example:</p>
 
 <code>echo site_url("news/local/123");</code>
 
@@ -90,7 +90,7 @@
 
 
 <h2>base_url()</h2>
-<p>Returns your site base URL, as specified in your config file. Example:</p>
+<p>Returns your site base URL, as specified in your config file.  Example:</p>
 <code>echo base_url();</code>
 
 
@@ -99,7 +99,7 @@
 
 
 <h2>uri_string()</h2>
-<p>Returns the URI segments of any page that contains this function. For example, if your URL was this:</p>
+<p>Returns the URI segments of any page that contains this function.  For example, if your URL was this:</p>
 <code>http://some-site.com/blog/comments/123</code>
 
 <p>The function would return:</p>
@@ -107,7 +107,7 @@
 
 
 <h2>index_page()</h2>
-<p>Returns your site "index" page, as specified in your config file. Example:</p>
+<p>Returns your site "index" page, as specified in your config file.  Example:</p>
 <code>echo index_page();</code>
 
 
@@ -122,15 +122,15 @@
 
 <code>anchor(<var>uri segments</var>, <var>text</var>, <var>attributes</var>)</code>
 
-<p>The first parameter can contain any segments you wish appended to the URL. As with the <dfn>site_url()</dfn> function above,
+<p>The first parameter can contain any segments you wish appended to the URL.  As with the <dfn>site_url()</dfn> function above,
 segments can be a string or an array.</p>
 
-<p><strong>Note:</strong>&nbsp; If you are building links that are internal to your application do not include the base URL (http://...). This
+<p><strong>Note:</strong>&nbsp; If you are building links that are internal to your application do not include the base URL (http://...).  This
 will be added automatically from the information specified in your config file. Include only the URI segments you wish appended to the URL.</p>
 
-<p>The second segment is the text you would like the link to say. If you leave it blank, the URL will be used.</p>
+<p>The second segment is the text you would like the link to say.  If you leave it blank, the URL will be used.</p>
 
-<p>The third parameter can contain a list of attributes you would like added to the link. The attributes can be a simple string or an associative array.</p>
+<p>The third parameter can contain a list of attributes you would like added to the link.  The attributes can be a simple string or an associative array.</p>
 
 <p>Here are some examples:</p>
 
@@ -148,7 +148,7 @@
 <p>Nearly identical to the <dfn>anchor()</dfn> function except that it opens the URL in a new window.
 
 You can specify JavaScript window attributes in the third parameter to control how the window is opened. If
-the third parameter is not set it will simply open a new window with your own browser settings. Here is an example
+the third parameter is not set it will simply open a new window with your own browser settings.  Here is an example
 with attributes:</p>
 
 <code>
@@ -173,7 +173,7 @@
 
 <h2>mailto()</h2>
 
-<p>Creates a standard HTML email link. Usage example:</p>
+<p>Creates a standard HTML email link.  Usage example:</p>
 
 <code>echo mailto('me@my-site.com', 'Click Here to Contact Me');</code>
 
@@ -188,12 +188,12 @@
 
 <h2>auto_link()</h2>
 
-<p>Automatically turns URLs and email addresses contained in a string into links. Example:</p>
+<p>Automatically turns URLs and email addresses contained in a string into links.  Example:</p>
 
 <code>$string = auto_link($string);</code>
 
-<p>The second parameter determines whether URLs and emails are converted or just one or the other. Default behavior is both
-if the parameter is not specified. Email links are encoded as safe_mailto() as shown above.</p>
+<p>The second parameter determines whether URLs and emails are converted or just one or the other.  Default behavior is both
+if the parameter is not specified.  Email links are encoded as safe_mailto() as shown above.</p>
 
 <p>Converts only URLs:</p>
 <code>$string = auto_link($string, 'url');</code>
@@ -201,42 +201,42 @@
 <p>Converts only Email addresses:</p>
 <code>$string = auto_link($string, 'email');</code>
 
-<p>The third parameter determines whether links are shown in a new window. The value can be TRUE or FALSE (boolean):</p>
+<p>The third parameter determines whether links are shown in a new window.  The value can be TRUE or FALSE (boolean):</p>
 <code>$string = auto_link($string, 'both', TRUE);</code>
 
 
 <h2>url_title()</h2>
 <p>Takes a string as input and creates a human-friendly URL string. This is useful if, for example, you have a blog
-in which you'd like to use the title of your entries in the URL. Example:</p>
+in which you'd like to use the title of your entries in the URL.  Example:</p>
 
 <code>$title = "What's wrong with CSS?";<br />
 <br />
 $url_title = url_title($title);<br />
 <br />
-// Produces: Whats-wrong-with-CSS
+// Produces:  Whats-wrong-with-CSS
 </code>
 
 
-<p>The second parameter determines the word delimiter. By default dashes are used. Options are: <dfn>dash</dfn>, or <dfn>underscore</dfn>:</p>
+<p>The second parameter determines the word delimiter.  By default dashes are used.  Options are:  <dfn>dash</dfn>, or <dfn>underscore</dfn>:</p>
 
 <code>$title = "What's wrong with CSS?";<br />
 <br />
 $url_title = url_title($title, 'underscore');<br />
 <br />
-// Produces: Whats_wrong_with_CSS
+// Produces:  Whats_wrong_with_CSS
 </code>
 
-<p>The third parameter determines whether or not lowercase characters are forced. By default they are not. Options are boolean <dfn>TRUE</dfn>/<dfn>FALSE</dfn>:</p>
+<p>The third parameter determines whether or not lowercase characters are forced.  By default they are not.  Options are boolean <dfn>TRUE</dfn>/<dfn>FALSE</dfn>:</p>
 
 <code>$title = "What's wrong with CSS?";<br />
 <br />
 $url_title = url_title($title, 'underscore', TRUE);<br />
 <br />
-// Produces: whats_wrong_with_css
+// Produces:  whats_wrong_with_css
 </code>
 
 <h3>prep_url()</h3>
-<p>This function will add <kbd>http://</kbd> in the event that a scheme is missing from a URL. Pass the URL string to the function like this:</p>
+<p>This function will add <kbd>http://</kbd> in the event that a scheme is missing from a URL.  Pass the URL string to the function like this:</p>
 <code>
 $url = "example.com";<br /><br />
 $url = prep_url($url);</code>
@@ -250,7 +250,7 @@
 to the controller you want to direct to will create the link. The function will build the URL based on your config file values.</p>
 
 <p>The optional second parameter allows you to choose between the "location"
-method (default) or the "refresh" method. Location is faster, but on Windows servers it can sometimes be a problem. The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is <em>only</em> available with 'location' redirects, and not 'refresh'. Examples:</p>
+method (default) or the "refresh" method.  Location is faster, but on Windows servers it can sometimes be a problem.  The optional third parameter allows you to send a specific HTTP Response Code - this could be used for example to create 301 redirects for search engine purposes. The default Response Code is 302. The third parameter is <em>only</em> available with 'location' redirects, and not 'refresh'. Examples:</p>
 
 <code>if ($logged_in == FALSE)<br />
 {<br />
@@ -262,7 +262,7 @@
 
 <p class="important"><strong>Note:</strong> In order for this function to work it must be used before anything is outputted
 to the browser since it utilizes server headers.<br />
-<strong>Note:</strong> For very fine grained control over headers, you should use the <a href="../libraries/output.html">Output Library</a>'s set_header() function.</p>
+<strong>Note:</strong> For  very fine grained control over headers, you should use the <a href="../libraries/output.html">Output  Library</a>'s set_header() function.</p>
 
 
 
diff --git a/user_guide/helpers/xml_helper.html b/user_guide/helpers/xml_helper.html
index b3d408c..ded9aaa 100644
--- a/user_guide/helpers/xml_helper.html
+++ b/user_guide/helpers/xml_helper.html
@@ -78,7 +78,7 @@
 Single and double quotes: ' &nbsp;"<br />
 Dashes: -</p>
 
-<p>This function ignores ampersands if they are part of existing character entities. Example:</p>
+<p>This function ignores ampersands if they are part of existing character entities.  Example:</p>
 
 <code>$string = xml_convert($string);</code>
 
diff --git a/user_guide/installation/index.html b/user_guide/installation/index.html
index f62aadb..87da518 100644
--- a/user_guide/installation/index.html
+++ b/user_guide/installation/index.html
@@ -61,24 +61,24 @@
 
 <ol>
 <li>Unzip the package.</li>
-<li>Upload the CodeIgniter folders and files to your server. Normally the index.php file will be at your root.</li>
-<li>Open the <dfn>application/config/config.php</dfn> file with a text editor and set your base URL. If you intend to use encryption or sessions, set your encryption key.</li>
+<li>Upload the CodeIgniter folders and files to your server.  Normally the index.php file will be at your root.</li>
+<li>Open the <dfn>application/config/config.php</dfn> file with a text editor and set your base URL.  If you intend to use encryption or sessions, set your encryption key.</li>
 <li>If you intend to use a database, open the <dfn>application/config/database.php</dfn> file with a text editor and set your database settings.</li>
 </ol>
 
 <p>If you wish to increase security by hiding the location of your CodeIgniter files you can rename the <dfn>system</dfn> and <dfn>application</dfn> folders
-to something more private. If you do rename them, you must open your main <kbd>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp>
+to something more private.  If you do rename them, you must open your main <kbd>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp>
 variables at the top of the file with the new name you've chosen.</p>
 
-<p>For the best security, both the <dfn>system</dfn> and any <dfn>application</dfn> folders should be placed above web root so that they are not directly accessible via a browser. By default, .htaccess files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't abide by the .htaccess.</p>
+<p>For the best security, both the <dfn>system</dfn> and any <dfn>application</dfn> folders should be placed above web root so that they are not directly accessible via a browser.  By default, .htaccess files are included in each folder to help prevent direct access, but it is best to remove them from public access entirely in case the web server configuration changes or doesn't abide by the .htaccess.</p>
 
 <p>After moving them, open your main <kdb>index.php</kbd> file and set the <samp>$system_folder</samp> and <samp>$application_folder</samp> variables, preferably with a full path, e.g. '<dfn>/www/MyUser/system</dfn>'.</p>
 
 <p>
-  One additional measure to take in production environments is to disable
-  PHP error reporting and any other development-only functionality. In CodeIgniter,
-  this can be done by setting the <kbd>ENVIRONMENT</kbd> constant, which is
-  more fully described on the <a href="../general/security.html">security page</a>.
+    One additional measure to take in production environments is to disable
+    PHP error reporting and any other development-only functionality. In CodeIgniter,
+    this can be done by setting the <kbd>ENVIRONMENT</kbd> constant, which is
+    more fully described on the <a href="../general/security.html">security page</a>.
 </p>
 
 <p>That's it!</p>
diff --git a/user_guide/installation/troubleshooting.html b/user_guide/installation/troubleshooting.html
index f99fc0a..2a50b8d 100644
--- a/user_guide/installation/troubleshooting.html
+++ b/user_guide/installation/troubleshooting.html
@@ -61,8 +61,8 @@
 does not support the PATH_INFO variable needed to serve search-engine friendly URLs.
 
 As a first step, open your <dfn>application/config/config.php</dfn> file and look for the <kbd>URI Protocol</kbd>
-information. It will recommend that you try a couple alternate settings. If it still doesn't work after you've tried this you'll need
-to force CodeIgniter to add a question mark to your URLs. To do this open your <kbd>application/config/config.php</kbd> file and change this:</p>
+information. It will recommend that you try a couple alternate settings.  If it still doesn't work after you've tried this you'll need
+to force CodeIgniter to add a question mark to your URLs.  To do this open your <kbd>application/config/config.php</kbd> file and change this:</p>
 
 <code>$config['index_page'] = "index.php";</code>
 
diff --git a/user_guide/installation/upgrade_130.html b/user_guide/installation/upgrade_130.html
index e6bb948..f7ffac7 100644
--- a/user_guide/installation/upgrade_130.html
+++ b/user_guide/installation/upgrade_130.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.2 to 1.3</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.2. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.2.  If you
 have not upgraded to that version please do so first.</p>
 
 
@@ -72,8 +72,8 @@
 <p class="important"><strong>Note:</strong> If you have any custom developed files in these folders please make copies of them first.</p>
 
 <ul>
-<li>application/<strong>models</strong>/&nbsp;&nbsp; (new for 1.3)</li>
-<li>codeigniter&nbsp;&nbsp;  (new for 1.3)</li>
+<li>application/<strong>models</strong>/&nbsp;&nbsp;  (new for 1.3)</li>
+<li>codeigniter&nbsp;&nbsp;   (new for 1.3)</li>
 <li>drivers</li>
 <li>helpers</li>
 <li>init</li>
@@ -109,7 +109,7 @@
 
 <h2>Step 3: Update your index.php file</h2>
 
-<p>Please open your main <dfn>index.php</dfn> file (located at your root). At the very bottom of the file, change this:</p>
+<p>Please open your main <dfn>index.php</dfn> file (located at your root).  At the very bottom of the file, change this:</p>
 
 <code>require_once BASEPATH.'libraries/Front_controller'.EXT;</code>
 
diff --git a/user_guide/installation/upgrade_131.html b/user_guide/installation/upgrade_131.html
index a7025f2..7541a83 100644
--- a/user_guide/installation/upgrade_131.html
+++ b/user_guide/installation/upgrade_131.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.3 to 1.3.1</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
diff --git a/user_guide/installation/upgrade_132.html b/user_guide/installation/upgrade_132.html
index 3b71594..4fcbb46 100644
--- a/user_guide/installation/upgrade_132.html
+++ b/user_guide/installation/upgrade_132.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.3.1 to 1.3.2</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.1. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.1.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
diff --git a/user_guide/installation/upgrade_133.html b/user_guide/installation/upgrade_133.html
index a81f67b..c634659 100644
--- a/user_guide/installation/upgrade_133.html
+++ b/user_guide/installation/upgrade_133.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.3.2 to 1.3.3</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.2. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.2.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
@@ -83,9 +83,9 @@
 
 <p>If you are <strong>NOT</strong> using CodeIgniter's <a href="../general/models.html">Models</a> feature disregard this step.</p>
 
-<p>As of version 1.3.3, CodeIgniter does <strong>not</strong> connect automatically to your database when a model is loaded. This
-allows you greater flexibility in determining which databases you would like used with your models. If your application is not connecting
-to your database prior to a model being loaded you will have to update your code. There are several options for connecting,
+<p>As of version 1.3.3, CodeIgniter does <strong>not</strong> connect automatically to your database when a model is loaded.  This
+allows you greater flexibility in determining which databases you would like used with your models.  If your application is not connecting
+to your database prior to a model being loaded you will have to update your code.  There are several options for connecting,
 <a href="../general/models.html">as described here</a>.</p>
 
 
diff --git a/user_guide/installation/upgrade_140.html b/user_guide/installation/upgrade_140.html
index 234e2f5..2049628 100644
--- a/user_guide/installation/upgrade_140.html
+++ b/user_guide/installation/upgrade_140.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.3.3 to 1.4.0</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.3. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.3.3.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
@@ -95,7 +95,7 @@
 |--------------------------------------------------------------------------
 |
 | If you would like to use the "hooks" feature you must enable it by
-| setting this variable to TRUE (boolean). See the user guide for details.
+| setting this variable to TRUE (boolean).  See the user guide for details.
 |
 */
 $config['enable_hooks'] = FALSE;
@@ -111,7 +111,7 @@
 | get a warning message.
 |
 | As a security measure you are STRONGLY encouraged to restrict URLs to
-| as few characters as possible. By default only these are allowed: a-z 0-9~%.:_-
+| as few characters as possible.  By default only these are allowed: a-z 0-9~%.:_-
 |
 | Leave blank to allow all characters -- but only if you are insane.
 |
diff --git a/user_guide/installation/upgrade_141.html b/user_guide/installation/upgrade_141.html
index 79e51e4..c19143c 100644
--- a/user_guide/installation/upgrade_141.html
+++ b/user_guide/installation/upgrade_141.html
@@ -56,7 +56,7 @@
 
 <h1>Upgrading from 1.4.0 to 1.4.1</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.0. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.0.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
@@ -88,16 +88,16 @@
 | Output Compression
 |--------------------------------------------------------------------------
 |
-| Enables Gzip output compression for faster page loads. When enabled,
+| Enables Gzip output compression for faster page loads.  When enabled,
 | the output class will test whether your server supports Gzip.
 | Even if it does, however, not all browsers support compression
 | so enable only if you are reasonably sure your visitors can handle it.
 |
-| VERY IMPORTANT: If you are getting a blank page when compression is enabled it
+| VERY IMPORTANT:  If you are getting a blank page when compression is enabled it
 | means you are prematurely outputting something to your browser. It could
-| even be a line of whitespace at the end of one of your scripts. For
+| even be a line of whitespace at the end of one of your scripts.  For
 | compression to work, nothing can be sent before the output buffer is called
-| by the output class. Do not "echo" any values with compression enabled.
+| by the output class.  Do not "echo" any values with compression enabled.
 |
 */
 $config['compress_output'] = FALSE;
diff --git a/user_guide/installation/upgrade_150.html b/user_guide/installation/upgrade_150.html
index 9cd0089..342d486 100644
--- a/user_guide/installation/upgrade_150.html
+++ b/user_guide/installation/upgrade_150.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.4.1 to 1.5.0</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.1. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.4.1.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
@@ -105,7 +105,7 @@
 |--------------------------------------------------------------------------
 |
 | This item allows you to set the filename/classname prefix when extending
-| native libraries. For more information please see the user guide:
+| native libraries.  For more information please see the user guide:
 |
 | http://codeigniter.com/user_guide/general/core_classes.html
 | http://codeigniter.com/user_guide/general/creating_libraries.html
@@ -120,7 +120,7 @@
 |
 | If your PHP installation does not have short tag support enabled CI
 | can rewrite the tags on-the-fly, enabling you to utilize that syntax
-| in your view files. Options are TRUE or FALSE (boolean)
+| in your view files.  Options are TRUE or FALSE (boolean)
 |
 */
 $config['rewrite_short_tags'] = FALSE;
@@ -136,7 +136,7 @@
 |--------------------------------------------------------------------------
 |
 | If you would like errors or debug messages logged set this variable to
-| TRUE (boolean). Note: You must set the file permissions on the "logs" folder
+| TRUE (boolean).  Note: You must set the file permissions on the "logs" folder
 | such that it is writable.
 |
 */
diff --git a/user_guide/installation/upgrade_152.html b/user_guide/installation/upgrade_152.html
index 136e309..f601a25 100644
--- a/user_guide/installation/upgrade_152.html
+++ b/user_guide/installation/upgrade_152.html
@@ -57,7 +57,7 @@
 
 <h1>Upgrading from 1.5.0 to 1.5.2</h1>
 
-<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.5.0 or 1.5.1. If you
+<p class="important"><strong>Note:</strong> The instructions on this page assume you are running version 1.5.0 or 1.5.1.  If you
 have not upgraded to that version please do so first.</p>
 
 <p>Before performing an update you should take your site offline by replacing the index.php file with a static one.</p>
diff --git a/user_guide/installation/upgrade_160.html b/user_guide/installation/upgrade_160.html
index 2adeff3..d06f58e 100644
--- a/user_guide/installation/upgrade_160.html
+++ b/user_guide/installation/upgrade_160.html
@@ -84,16 +84,16 @@
 <p>Add the following to application/config/autoload.php</p>
 <p><code> /*<br />
 	| -------------------------------------------------------------------<br />
-	| Auto-load Model files<br />
+	|  Auto-load Model files<br />
 	| -------------------------------------------------------------------<br />
 	| Prototype:<br />
 	|<br />
-	| $autoload['model'] = array('my_model');<br />
+	|  $autoload['model'] = array('my_model');<br />
 	|<br />
 	*/<br />
 	<br />
 	$autoload['model'] = array();</code></p>
-<h2>Step 4: Add to your database.php </h2>
+<h2>Step 4: Add  to your database.php </h2>
 <p>Make the following changes to your application/config/database.php file:</p>
 <p>Add the following variable above the database configuration options, with <dfn>$active_group</dfn></p>
 <p><code>$active_record = TRUE;</code></p>
diff --git a/user_guide/installation/upgrade_170.html b/user_guide/installation/upgrade_170.html
index 6fd92f5..01597a4 100644
--- a/user_guide/installation/upgrade_170.html
+++ b/user_guide/installation/upgrade_170.html
@@ -88,14 +88,14 @@
 
 <code>ALTER TABLE `ci_sessions` ADD `user_data` text NOT NULL</code>
 
-<p>You'll find more information regarding the new Session functionality in the <a href="../libraries/sessions.html">Session class</a> page.</p>
+<p>You'll find more information regarding the new Session functionality in the  <a href="../libraries/sessions.html">Session class</a> page.</p>
 
 
 <h2>Step 3: Update your Validation Syntax</h2>
 
-<p>This is an <strong>optional</strong>, but recommended step, for people currently using the Validation class. CI 1.7 introduces a new <a href="../libraries/form_validation.html">Form Validation class</a>, which
-deprecates the old Validation library. We have left the old one in place so that existing applications that use it will not break, but you are encouraged to
-migrate to the new version as soon as possible. Please read the user guide carefully as the new library works a little differently, and has several new features.</p>
+<p>This is an <strong>optional</strong>, but recommended step, for people currently using the Validation class.  CI 1.7 introduces a new  <a href="../libraries/form_validation.html">Form Validation class</a>, which
+deprecates the old Validation library.  We have left the old one in place so that existing applications that use it will not break, but you are encouraged to
+migrate to the new version as soon as possible.  Please read the user guide carefully as the new library works a little differently, and has several new features.</p>
 
 
 
diff --git a/user_guide/installation/upgrade_200.html b/user_guide/installation/upgrade_200.html
index cd39d92..0b24079 100644
--- a/user_guide/installation/upgrade_200.html
+++ b/user_guide/installation/upgrade_200.html
@@ -69,8 +69,8 @@
 
 <h2>Step 2: Adjust get_dir_file_info() where necessary</h2>
 
-<p>Version 2.0.0 brings a non-backwards compatible change to <kbd>get_dir_file_info()</kbd> in the <a href="../helpers/file_helper.html">File Helper</a>. Non-backwards compatible changes are extremely rare
-	in CodeIgniter, but this one we feel was warranted due to how easy it was to create serious server performance issues. If you <em>need</em>
+<p>Version 2.0.0 brings a non-backwards compatible change to <kbd>get_dir_file_info()</kbd> in the <a href="../helpers/file_helper.html">File Helper</a>.  Non-backwards compatible changes are extremely rare
+	in CodeIgniter, but this one we feel was warranted due to how easy it was to create serious server performance issues.  If you <em>need</em>
 	recursiveness where you are using this helper function, change such instances, setting the second parameter, <kbd>$top_level_only</kbd> to FALSE:</p>
 
 <code>get_dir_file_info('/path/to/directory', <kbd>FALSE</kbd>);</code>
@@ -79,7 +79,7 @@
 
 <h2>Step 3: Convert your Plugins to Helpers</h2>
 
-<p>2.0.0 gets rid of the "Plugin" system as their functionality was identical to Helpers, but non-extensible. You will need to rename your plugin files from <var>filename_pi.php</var> to <var>filename_helper.php</var>, move them to your <kbd>helpers</kbd> folder, and change all instances of:
+<p>2.0.0 gets rid of the "Plugin" system as their functionality was identical to Helpers, but non-extensible.  You will need to rename your plugin files from <var>filename_pi.php</var> to <var>filename_helper.php</var>, move them to your <kbd>helpers</kbd> folder, and change all instances of:
 
 	<code>$this->load->plugin('foo');</code>
 
@@ -94,7 +94,7 @@
 <p class="important"><strong>Note:</strong> If your application does not use the Encryption library, does not store Encrypted data permanently, or is on an environment that does not support Mcrypt, you may skip this step.</p>
 
 <p>The Encryption library has had a number of improvements, some for encryption strength and some for performance, that has an unavoidable consequence of
-	making it no longer possible to decode encrypted data produced by the original version of this library. To help with the transition, a new method has
+	making it no longer possible to decode encrypted data produced by the original version of this library.  To help with the transition, a new method has
 	been added, <kbd>encode_from_legacy()</kbd> that will decode the data with the original algorithm and return a re-encoded string using the improved methods.
 	This will enable you to easily replace stale encrypted data with fresh in your applications, either on the fly or en masse.</p>
 
@@ -104,7 +104,7 @@
 <p>The compatibility helper has been removed from the CodeIgniter core. All methods in it should be natively available in supported PHP versions.</p>
 
 <h2>Step 6: Update Class extension</h2>
-<p>All core classes are now prefixed with <kbd>CI_</kbd>. Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p>
+<p>All core classes are now prefixed with <kbd>CI_</kbd>.  Update Models and Controllers to extend CI_Model and CI_Controller, respectively.</p> 
 
 <h2>Step 7: Update Parent Constructor calls</h2>
 <p>All native CodeIgniter classes now use the PHP 5 <kbd>__construct()</kbd> convention. Please update extended libraries to call <kbd>parent::__construct()</kbd>.</p>
diff --git a/user_guide/installation/upgrade_202.html b/user_guide/installation/upgrade_202.html
index 93c5372..d457d8b 100644
--- a/user_guide/installation/upgrade_202.html
+++ b/user_guide/installation/upgrade_202.html
@@ -76,7 +76,7 @@
 
 <p>If you are overriding or extending the Security library, you will need to move it to <kbd>application/core</kbd>.</p>
 
-<p><samp>csrf_token_name</samp> and <samp>csrf_hash</samp> have changed to protected class properties. Please use <samp>security->get_csrf_hash()</samp> and <samp>security->get_csrf_token_name()</samp> to access those values.</p>
+<p><samp>csrf_token_name</samp> and <samp>csrf_hash</samp> have changed to protected class properties.  Please use <samp>security->get_csrf_hash()</samp> and <samp>security->get_csrf_token_name()</samp> to access those values.</p>
 
 </div>
 <!-- END CONTENT -->
diff --git a/user_guide/installation/upgrade_203.html b/user_guide/installation/upgrade_203.html
index d1c9a94..7dbc907 100644
--- a/user_guide/installation/upgrade_203.html
+++ b/user_guide/installation/upgrade_203.html
@@ -69,7 +69,7 @@
 <h2>Step 2: Update CodeIgniter files</h2>
 
 <p>Replace the files and directories in your "system" folder with the new versions:</p>
-
+	
 <h2>Step 3: Update your main index.php file</h2>
 
 <p>If you are running a stock <dfn>index.php</dfn> file simply replace your version with the new one.</p>
@@ -81,7 +81,7 @@
 <p>This config file has been updated to contain more user agent types, please copy it to <kbd>application/config/user_agents.php</kbd>.</p>
 
 <h2>Step 5: Change references of the EXT constant to ".php"</h2>
-<p class="important"><strong>Note:</strong> The EXT Constant has been marked as deprecated, but has not been removed from the application. You are encouraged to make the changes sooner rather than later.</p>
+<p class="important"><strong>Note:</strong> The EXT Constant has been marked as deprecated, but has not been removed from the application.  You are encouraged to make the changes sooner rather than later.</p>
 
 <h2>Step 6: Remove APPPATH.'third_party' from autoload.php</h2>
 
@@ -101,10 +101,10 @@
 <code>
 	CREATE INDEX last_activity_idx ON ci_sessions(last_activity);
 	ALTER TABLE ci_sessions MODIFY user_agent VARCHAR(120);
-</code>
-
-
-
+</code>	
+	
+	
+	
 
 </div>
 <!-- END CONTENT -->
diff --git a/user_guide/installation/upgrade_b11.html b/user_guide/installation/upgrade_b11.html
index d2fc20d..add7228 100644
--- a/user_guide/installation/upgrade_b11.html
+++ b/user_guide/installation/upgrade_b11.html
@@ -61,7 +61,7 @@
 
 <h2>Step 1: Replace your index file</h2>
 
-<p>Replace your main <kbd>index.php</kbd> file with the new index.php file. Note: If you have renamed your "system" folder you will need to edit this info in the new file.</p>
+<p>Replace your main <kbd>index.php</kbd> file with the new index.php file. Note:  If you have renamed your "system" folder you will need to edit this info in the new file.</p>
 
 <h2>Step 2: Relocate your config folder</h2>
 
@@ -91,7 +91,7 @@
 
 <h2>Step 5: Edit your config file</h2>
 
-<p>The original <kbd>application/config/config.php</kbd> file has a typo in it Open the file and look for the items related to cookies:</p>
+<p>The original <kbd>application/config/config.php</kbd> file has a typo in it  Open the file and look for the items related to cookies:</p>
 
 <code>$conf['cookie_prefix']	= "";<br />
 $conf['cookie_domain']	= "";<br />
@@ -112,7 +112,7 @@
 |------------------------------------------------<br />
 |<br />
 | This item determines which server global <br />
-| should be used to retrieve the URI string. The <br />
+| should be used to retrieve the URI string.  The <br />
 | default setting of "auto" works for most servers.<br />
 | If your links do not seem to work, try one of <br />
 | the other delicious flavors:<br />
diff --git a/user_guide/libraries/benchmark.html b/user_guide/libraries/benchmark.html
index 4dadf6b..c29acb7 100644
--- a/user_guide/libraries/benchmark.html
+++ b/user_guide/libraries/benchmark.html
@@ -83,7 +83,7 @@
 <a name="using"></a>
 <h2>Using the Benchmark Class</h2>
 
-<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>, <a href="../general/views.html">views</a>, or your <a href="../general/models.html">models</a>. The process for usage is this:</p>
+<p>The Benchmark class can be used within your <a href="../general/controllers.html">controllers</a>,  <a href="../general/views.html">views</a>, or your  <a href="../general/models.html">models</a>.  The process for usage is this:</p>
 
 <ol>
 <li>Mark a start point</li>
@@ -101,7 +101,7 @@
 <br />
 echo $this->benchmark->elapsed_time('code_start', 'code_end');</code>
 
-<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary. They are simply words used to set two markers. You can
+<p class="important"><strong>Note:</strong> The words "code_start" and "code_end" are arbitrary.  They are simply words used to set two markers.  You can
 use any words you want, and you can set multiple sets of markers. Consider this example:</p>
 
 <code>$this->benchmark->mark('dog');<br />
@@ -154,8 +154,8 @@
 <code>&lt;?php echo $this->benchmark->elapsed_time();?&gt;</code>
 
 <p>You'll notice that it's the same function used in the examples above to calculate the time between two point, except you are
-<strong>not</strong> using any parameters. When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final
-output is sent to the browser. It doesn't matter where you use the function call, the timer will continue to run until the very end.</p>
+<strong>not</strong> using any parameters.  When the parameters are absent, CodeIgniter does not stop the benchmark until right before the final
+output is sent to the browser.  It doesn't matter where you use the function call, the timer will continue to run until the very end.</p>
 
 <p>An alternate way to show your elapsed time in your view files is to use this pseudo-variable, if you prefer not to use the pure PHP:</p>
 <code>{elapsed_time}</code>
diff --git a/user_guide/libraries/caching.html b/user_guide/libraries/caching.html
index 3fa9fa6..190232e 100644
--- a/user_guide/libraries/caching.html
+++ b/user_guide/libraries/caching.html
@@ -58,7 +58,7 @@
 
 <h1>Caching Driver</h1>
 
-<p>CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching. All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.</p>
+<p>CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching.  All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.</p>
 
 <h2>Table of Contents</h2>
 <ul>
@@ -97,7 +97,7 @@
 
 <h2>is_supported(<var>driver</var>['string'])</h2>
 
-<p>This function is automatically called when accessing drivers via <samp>$this->cache->get()</samp>. However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.</p>
+<p>This function is automatically called when accessing drivers via <samp>$this->cache->get()</samp>.  However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.</p>
 
 <code>
 if ($this->cache->apc->is_supported())<br />
@@ -111,23 +111,23 @@
 
 <h2>get(<var>id</var>['string'])</h2>
 
-<p>This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return <samp>FALSE</samp>.</p>
+<p>This function will attempt to fetch an item from the cache store.  If the item does not exist, the function will return <samp>FALSE</samp>.</p>
 <code>$foo = $this->cache->get('my_cached_item');</code>
 
 <h2>save(<var>id</var>['string'], <var>data</var>['mixed'], <var>ttl</var>['int'])</h2>
 
-<p>This function will save an item to the cache store. If saving fails, the function will return <samp>FALSE</samp>.</p>
+<p>This function will save an item to the cache store.  If saving fails, the function will return <samp>FALSE</samp>.</p>
 <p>The optional third parameter (Time To Live) defaults to 60 seconds.</p>
 <code>$this->cache->save('cache_item_id', 'data_to_cache');</code>
 
 <h2>delete(<var>id</var>['string'])</h2>
 
-<p>This function will delete a specific item from the cache store. If item deletion fails, the function will return <samp>FALSE</samp>.</p>
+<p>This function will delete a specific item from the cache store.  If item deletion fails, the function will return <samp>FALSE</samp>.</p>
 <code>$this->cache->delete('cache_item_id');</code>
 
 <h2>clean()</h2>
 
-<p>This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return <samp>FALSE</samp>.</p>
+<p>This function will 'clean' the entire cache.  If the deletion of the cache files fails, the function will return <samp>FALSE</samp>.</p>
 
 <code>$this->cache->clean();</code>
 
@@ -154,7 +154,7 @@
 
 <h2 id="file">File-based Caching</h2>
 
-<p>Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached. Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.</p>
+<p>Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached.  Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.</p>
 
 <p>All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:</p>
 <code>$this->load->driver('cache');<br />
@@ -172,7 +172,7 @@
 
 <h2 id="dummy">Dummy Cache</h2>
 
-<p>This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.</p>
+<p>This is a caching backend that will always 'miss.'  It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.</p>
 
 </div>
 <!-- END CONTENT -->
diff --git a/user_guide/libraries/calendar.html b/user_guide/libraries/calendar.html
index 06dfec7..e1af71c 100644
--- a/user_guide/libraries/calendar.html
+++ b/user_guide/libraries/calendar.html
@@ -86,13 +86,13 @@
 <br />
 echo $this->calendar->generate(<kbd>2006</kbd>, <kbd>6</kbd>);</code>
 
-<p>The above code will generate a calendar showing the month of June in 2006. The first parameter specifies the year, the second parameter specifies the month.</p>
+<p>The above code will generate a calendar showing the month of June in 2006.  The first parameter specifies the year, the second parameter specifies the month.</p>
 
 <h2>Passing Data to your Calendar Cells</h2>
 
 <p>To add data to your calendar cells involves creating an associative array in which the keys correspond to the days
-you wish to populate and the array value contains the data. The array is passed to the third parameter of the calendar
-generating function. Consider this example:</p>
+you wish to populate and the array value contains the data.  The array is passed to the third parameter of the calendar
+generating function.  Consider this example:</p>
 
 <code>$this->load->library('calendar');<br />
 <br />
@@ -114,7 +114,7 @@
 
 <h2>Setting Display Preferences</h2>
 
-<p>There are seven preferences you can set to control various aspects of the calendar. Preferences are set by passing an
+<p>There are seven preferences you can set to control various aspects of the calendar.  Preferences are set by passing an
 array of preferences in the second parameter of the loading function. Here is an example:</p>
 
 
@@ -129,7 +129,7 @@
 <br />
 echo $this->calendar->generate();</code>
 
-<p>The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names. More information
+<p>The above code would start the calendar on saturday, use the "long" month heading, and the "short" day names.  More information
 regarding preferences below.</p>
 
 
@@ -180,7 +180,7 @@
 <ul>
 <li>You must set the "show_next_prev" to TRUE.</li>
 <li>You must supply the URL to the controller containing your calendar in the "next_prev_url" preference.</li>
-<li>You must supply the "year" and "month" to the calendar generating function via the URI segments where they appear (Note: The calendar class automatically adds the year/month to the base URL you provide.).</li>
+<li>You must supply the "year" and "month" to the calendar generating function via the URI segments where they appear (Note:  The calendar class automatically adds the year/month to the base URL you provide.).</li>
 </ul>
 
 
diff --git a/user_guide/libraries/cart.html b/user_guide/libraries/cart.html
index 433bd50..f084d5d 100644
--- a/user_guide/libraries/cart.html
+++ b/user_guide/libraries/cart.html
@@ -61,13 +61,13 @@
 <p>The Cart Class permits items to be added to a session that stays active while a user is browsing your site.
 These items can be retrieved and displayed in a standard "shopping cart" format, allowing the user to update the quantity or remove items from the cart.</p>
 
-<p>Please note that the Cart Class ONLY provides the core "cart" functionality. It does not provide shipping, credit card authorization, or other processing components.</p>
+<p>Please note that the Cart Class ONLY provides the core "cart" functionality.  It does not provide shipping, credit card authorization, or other processing components.</p>
 
 
 <h2>Initializing the Shopping Cart Class</h2>
 
 <p><strong>Important:</strong> The Cart class utilizes CodeIgniter's
-<a href="sessions.html">Session Class</a> to save the cart information to a database, so before using the Cart class you must set up a database table
+<a href="sessions.html">Session Class</a>  to save the cart information to a database, so before using the Cart class you must set up a database table
 as indicated in the <a href="sessions.html">Session Documentation</a> , and set the session preferences in your <kbd>application/config/config.php</kbd> file to utilize a database.</p>
 
 <p>To initialize the Shopping Cart Class in your controller constructor, use the <dfn>$this->load->library</dfn> function:</p>
@@ -106,19 +106,19 @@
 <li><strong>qty</strong> - The quantity being purchased.
 <li><strong>price</strong> - The price of the item.
 <li><strong>name</strong> - The name of the item.
-<li><strong>options</strong> - Any additional attributes that are needed to identify the product. These must be passed via an array.
+<li><strong>options</strong> - Any additional attributes that are needed to identify the product.  These must be passed via an array.
 </ul>
 
-<p>In addition to the five indexes above, there are two reserved words: <dfn>rowid</dfn> and <dfn>subtotal</dfn>. These are used internally by the Cart class, so
+<p>In addition to the five indexes above, there are two reserved words: <dfn>rowid</dfn> and <dfn>subtotal</dfn>.  These are used internally by the Cart class, so
 please do NOT use those words as index names when inserting data into the cart.</p>
 
-<p>Your array may contain additional data. Anything you include in your array will be stored in the session. However, it is best to standardize your data among
+<p>Your array may contain additional data.  Anything you include in your array will be stored in the session.  However, it is best to standardize your data among
 all your products in order to make displaying the information in a table easier.</p>
 
 
 <h2>Adding Multiple Items to The Cart</h2>
 
-<p>By using a multi-dimensional array, as shown below, it is possible to add multiple products to the cart in one action. This is useful in cases where you wish to allow
+<p>By using a multi-dimensional array, as shown below, it is possible to add multiple products to the cart in one action.  This is useful in cases where you wish to allow
 people to select from among several items on the same page.</p>
 
 
@@ -170,10 +170,10 @@
 &lt;table cellpadding="6" cellspacing="1" style="width:100%" border="0">
 
 &lt;tr>
- &lt;th>QTY&lt;/th>
- &lt;th>Item Description&lt;/th>
- &lt;th style="text-align:right">Item Price&lt;/th>
- &lt;th style="text-align:right">Sub-Total&lt;/th>
+  &lt;th>QTY&lt;/th>
+  &lt;th>Item Description&lt;/th>
+  &lt;th style="text-align:right">Item Price&lt;/th>
+  &lt;th style="text-align:right">Sub-Total&lt;/th>
 &lt;/tr>
 
 &lt;?php $i = 1; ?>
@@ -183,8 +183,8 @@
 	&lt;?php echo form_hidden($i.'[rowid]', $items['rowid']); ?>
 
 	&lt;tr>
-	 &lt;td>&lt;?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?>&lt;/td>
-	 &lt;td>
+	  &lt;td>&lt;?php echo form_input(array('name' => $i.'[qty]', 'value' => $items['qty'], 'maxlength' => '3', 'size' => '5')); ?>&lt;/td>
+	  &lt;td>
 		&lt;?php echo $items['name']; ?>
 
 			&lt;?php if ($this->cart->has_options($items['rowid']) == TRUE): ?>
@@ -199,9 +199,9 @@
 
 			&lt;?php endif; ?>
 
-	 &lt;/td>
-	 &lt;td style="text-align:right">&lt;?php echo $this->cart->format_number($items['price']); ?>&lt;/td>
-	 &lt;td style="text-align:right">$&lt;?php echo $this->cart->format_number($items['subtotal']); ?>&lt;/td>
+	  &lt;/td>
+	  &lt;td style="text-align:right">&lt;?php echo $this->cart->format_number($items['price']); ?>&lt;/td>
+	  &lt;td style="text-align:right">$&lt;?php echo $this->cart->format_number($items['subtotal']); ?>&lt;/td>
 	&lt;/tr>
 
 &lt;?php $i++; ?>
@@ -209,9 +209,9 @@
 &lt;?php endforeach; ?>
 
 &lt;tr>
- &lt;td colspan="2">&nbsp;&lt;/td>
- &lt;td class="right">&lt;strong>Total&lt;/strong>&lt;/td>
- &lt;td class="right">$&lt;?php echo $this->cart->format_number($this->cart->total()); ?>&lt;/td>
+  &lt;td colspan="2">&nbsp;&lt;/td>
+  &lt;td class="right">&lt;strong>Total&lt;/strong>&lt;/td>
+  &lt;td class="right">$&lt;?php echo $this->cart->format_number($this->cart->total()); ?>&lt;/td>
 &lt;/tr>
 
 &lt;/table>
@@ -265,11 +265,11 @@
 
 </code>
 
-<p><strong>What is a Row ID?</strong>&nbsp; The <kbd>row ID</kbd> is a unique identifier that is generated by the cart code when an item is added to the cart. The reason a
+<p><strong>What is a Row ID?</strong>&nbsp; The <kbd>row ID</kbd> is a unique identifier that is generated by the cart code when an item is added to the cart.  The reason a
 unique ID is created is so that identical products with different options can be managed by the cart.</p>
 
-<p>For example, let's say someone buys two identical t-shirts (same product ID), but in different sizes. The product ID (and other attributes) will be
-identical for both sizes because it's the same shirt. The only difference will be the size. The cart must therefore have a means of identifying this
+<p>For example, let's say someone buys two identical t-shirts (same product ID), but in different sizes.  The product ID (and other attributes) will be
+identical for both sizes because it's the same shirt. The only difference will be the size.  The cart must therefore have a means of identifying this
 difference so that the two sizes of shirts can be managed independently. It does so by creating a unique "row ID" based on the product ID and any options associated with it.</p>
 
 <p>In nearly all cases, updating the cart will be something the user does via the "view cart" page, so as a developer, it is unlikely that you will ever have to concern yourself
@@ -311,7 +311,7 @@
 
 <h2>$this->cart->has_options(rowid);</h2>
 
-<p>Returns TRUE (boolean) if a particular row in the cart contains options. This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p>
+<p>Returns TRUE (boolean) if a particular row in the cart contains options.  This function is designed to be used in a loop with <dfn>$this->cart->contents()</dfn>, since you must pass the <kbd>rowid</kbd> to this function, as shown in the <dfn>Displaying the Cart</dfn> example above.</p>
 
 
 <h2>$this->cart->product_options(rowid);</h2>
@@ -322,7 +322,7 @@
 
 <h2>$this->cart->destroy();</h2>
 
-<p>Permits you to destroy the cart. This function will likely be called when you are finished processing the customer's order.</p>
+<p>Permits you to destroy the cart.  This function will likely be called when you are finished processing the customer's order.</p>
 
 
 
diff --git a/user_guide/libraries/config.html b/user_guide/libraries/config.html
index c0192ca..2433ec4 100644
--- a/user_guide/libraries/config.html
+++ b/user_guide/libraries/config.html
@@ -58,7 +58,7 @@
 
 <h1>Config Class</h1>
 
-<p>The Config class provides a means to retrieve configuration preferences. These preferences can
+<p>The Config class provides a means to retrieve configuration preferences.  These preferences can
 come from the default config file (<samp>application/config/config.php</samp>) or from your own custom config files.</p>
 
 <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>
@@ -66,7 +66,7 @@
 
 <h2>Anatomy of a Config File</h2>
 
-<p>By default, CodeIgniter has one primary config file, located at <samp>application/config/config.php</samp>. If you open the file using
+<p>By default, CodeIgniter has one primary config file, located at <samp>application/config/config.php</samp>.  If you open the file using
 your text editor you'll see that config items are stored in an array called <var>$config</var>.</p>
 
 <p>You can add your own config items to
@@ -74,7 +74,7 @@
 simply create your own file and save it in <dfn>config</dfn> folder.</p>
 
 <p><strong>Note:</strong> If you do create your own config files use the same format as the primary one, storing your items in
-an array called <var>$config</var>. CodeIgniter will intelligently manage these files so there will be no conflict even though
+an array called  <var>$config</var>. CodeIgniter will intelligently manage these files so there will be no conflict even though
 the array has the same name (assuming an array index is not named the same as another).</p>
 
 <h2>Loading a Config File</h2>
@@ -92,12 +92,12 @@
 
 <p>Where <var>filename</var> is the name of your config file, without the .php file extension.</p>
 
-<p>If you need to load multiple config files normally they will be merged into one master config array. Name collisions can occur, however, if
-you have identically named array indexes in different config files. To avoid collisions you can set the second parameter to <kbd>TRUE</kbd>
+<p>If you need to load multiple config files normally they will be merged into one master config array.  Name collisions can occur, however, if
+you have identically named array indexes in different config files.  To avoid collisions you can set the second parameter to <kbd>TRUE</kbd>
 and each config file will be stored in an array index corresponding to the name of the config file. Example:</p>
 
 <code>
-// Stored in an array with this prototype: $this->config['blog_settings'] = $config<br />
+// Stored in an array with this prototype:  $this->config['blog_settings'] = $config<br />
 $this->config->load('<var>blog_settings</var>', <kbd>TRUE</kbd>);</code>
 
 <p>Please see the section entitled <dfn>Fetching Config Items</dfn> below to learn how to retrieve config items set this way.</p>
@@ -109,7 +109,7 @@
 </li>
 <li><strong>Auto-loading</strong>
 
-<p>If you find that you need a particular config file globally, you can have it loaded automatically by the system. To do this,
+<p>If you find that you need a particular config file globally, you can have it loaded automatically by the system.  To do this,
 open the <strong>autoload.php</strong> file, located at <samp>application/config/autoload.php</samp>, and add your config file as
 indicated in the file.</p>
 </li>
@@ -129,7 +129,7 @@
 <p>The function returns FALSE (boolean) if the item you are trying to fetch does not exist.</p>
 
 <p>If you are using the second parameter of the <kbd>$this->config->load</kbd> function in order to assign your config items to a specific index
-you can retrieve it by specifying the index name in the second parameter of the <kbd>$this->config->item()</kbd> function. Example:</p>
+you can retrieve it by specifying the index name in the second parameter of the <kbd>$this->config->item()</kbd> function.  Example:</p>
 
 <code>
 // Loads a config file named blog_settings.php and assigns it to an index named "blog_settings"<br />
@@ -154,32 +154,32 @@
 <h2>Environments</h2>
 
 <p>
-  You may load different configuration files depending on the current environment.
-  The <kbd>ENVIRONMENT</kbd> constant is defined in index.php, and is described
-  in detail in the <a href="../general/environments.html">Handling Environments</a>
-  section.
+    You may load different configuration files depending on the current environment.
+    The <kbd>ENVIRONMENT</kbd> constant is defined in index.php, and is described
+    in detail in the <a href="../general/environments.html">Handling Environments</a>
+    section.
 </p>
 
 <p>
-  To create an environment-specific configuration file,
-  create or copy a configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php
+    To create an environment-specific configuration file,
+    create or copy a configuration file in application/config/{ENVIRONMENT}/{FILENAME}.php
 </p>
 
 <p>For example, to create a production-only config.php, you would:</p>
 
 <ol>
-  <li>Create the directory application/config/production/</li>
-  <li>Copy your existing config.php into the above directory</li>
-  <li>Edit application/config/production/config.php so it contains your production settings</li>
+    <li>Create the directory application/config/production/</li>
+    <li>Copy your existing config.php into the above directory</li>
+    <li>Edit application/config/production/config.php so it contains your production settings</li>
 </ol>
 
 <p>
-  When you set the <kbd>ENVIRONMENT</kbd> constant to 'production', the settings
-  for your new production-only config.php will be loaded.
+    When you set the <kbd>ENVIRONMENT</kbd> constant to 'production', the settings
+    for your new production-only config.php will be loaded.
 </p>
 
 <p>You can place the following configuration files in environment-specific folders:</p>
-
+	
 <ul>
 <li>Default CodeIgniter configuration files</li>
 <li>Your own custom configuration files</li>
diff --git a/user_guide/libraries/email.html b/user_guide/libraries/email.html
index 61e1391..5a8814d 100644
--- a/user_guide/libraries/email.html
+++ b/user_guide/libraries/email.html
@@ -78,7 +78,7 @@
 
 <p>Sending email is not only simple, but you can configure it on the fly or set your preferences in a config file.</p>
 
-<p>Here is a basic example demonstrating how you might send email. Note: This example assumes you are sending the email from one of your
+<p>Here is a basic example demonstrating how you might send email.  Note:  This example assumes you are sending the email from one of your
 <a href="../general/controllers.html">controllers</a>.</p>
 
 <code>$this->load->library('email');<br />
@@ -103,7 +103,7 @@
 <p>There are 17 different preferences available to tailor how your email messages are sent. You can either set them manually
 as described here, or automatically via preferences stored in your config file, described below:</p>
 
-<p>Preferences are set by passing an array of preference values to the email <dfn>initialize</dfn> function. Here is an example of how you might set some preferences:</p>
+<p>Preferences are set by passing an array of preference values to the email <dfn>initialize</dfn> function.  Here is an example of how you might set some preferences:</p>
 
 <code>$config['protocol'] = 'sendmail';<br />
 $config['mailpath'] = '/usr/sbin/sendmail';<br />
@@ -117,7 +117,7 @@
 ><h3>Setting Email Preferences in a Config File</h3>
 
 <p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
-Simply create a new file called the <var>email.php</var>, add the <var>$config</var>
+Simply create a new file called the <var>email.php</var>,  add the <var>$config</var>
 array in that file. Then save the file at <var>config/email.php</var> and it will be used automatically. You
 will NOT need to use the <dfn>$this->email->initialize()</dfn> function if you save your preferences in a config file.</p>
 
@@ -156,13 +156,13 @@
 </tr><tr>
 <td class="td"><strong>wrapchars</strong></td><td class="td">76</td><td class="td"> </td><td class="td">Character count to wrap at.</td>
 </tr><tr>
-<td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text or html</td><td class="td">Type of mail. If you send HTML email you must send it as a complete web page. Make sure you don't have any relative links or relative image paths otherwise they will not work.</td>
+<td class="td"><strong>mailtype</strong></td><td class="td">text</td><td class="td">text or html</td><td class="td">Type of mail. If you send HTML email you must send it as a complete web page.  Make sure you don't have any relative links or relative image paths otherwise they will not work.</td>
 </tr><tr>
 <td class="td"><strong>charset</strong></td><td class="td">utf-8</td><td class="td"></td><td class="td">Character set (utf-8, iso-8859-1, etc.).</td>
 </tr><tr>
-<td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE (boolean)</td><td class="td">Whether to validate the email address.</td>
+<td class="td"><strong>validate</strong></td><td class="td">FALSE</td><td class="td">TRUE or FALSE  (boolean)</td><td class="td">Whether to validate the email address.</td>
 </tr><tr>
-<td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email Priority. 1 = highest. 5 = lowest. 3 = normal.</td>
+<td class="td"><strong>priority</strong></td><td class="td">3</td><td class="td">1, 2, 3, 4, 5</td><td class="td">Email Priority. 1 = highest.  5 = lowest.  3 = normal.</td>
 </tr>
 <tr>
 	<td class="td"><strong>crlf</strong></td>
@@ -188,12 +188,12 @@
 <code>$this->email->from('<var>you@example.com</var>', '<var>Your Name</var>');</code>
 
 <h3>$this->email->reply_to()</h3>
-<p>Sets the reply-to address. If the information is not provided the information in the "from" function is used. Example:</p>
+<p>Sets the reply-to address.  If the information is not provided the information in the "from" function is used. Example:</p>
 <code>$this->email->reply_to('<var>you@example.com</var>', '<var>Your Name</var>');</code>
 
 
 <h3>$this->email->to()</h3>
-<p>Sets the email address(s) of the recipient(s). Can be a single email, a comma-delimited list or an array:</p>
+<p>Sets the email address(s) of the recipient(s).  Can be a single email, a comma-delimited list or an array:</p>
 
 <code>$this->email->to('<var>someone@example.com</var>');</code>
 <code>$this->email->to('<var>one@example.com</var>, <var>two@example.com</var>, <var>three@example.com</var>');</code>
@@ -221,14 +221,14 @@
 <p>Sets the alternative email message body:</p>
 <code>$this->email->set_alt_message('<var>This is the alternative message</var>');</code>
 
-<p>This is an optional message string which can be used if you send HTML formatted email. It lets you specify an alternative
+<p>This is an optional message string which can be used if you send HTML formatted email.  It lets you specify an alternative
 message with no HTML formatting which is added to the header string for people who do not accept HTML email.
 If you do not set your own message CodeIgniter will extract the message from your HTML email and strip the tags.</p>
 
 
 
 <h3>$this->email->clear()</h3>
-<p>Initializes all the email variables to an empty state. This function is intended for use if you run the email sending function
+<p>Initializes all the email variables to an empty state.  This function is intended for use if you run the email sending function
 in a loop, permitting the data to be reset between cycles.</p>
 <code>foreach ($list as $name => $address)<br />
 {<br />
@@ -268,13 +268,13 @@
 
 
 <h3>$this->email->print_debugger()</h3>
-<p>Returns a string containing any server messages, the email headers, and the email messsage. Useful for debugging.</p>
+<p>Returns a string containing any server messages, the email headers, and the email messsage.  Useful for debugging.</p>
 
 
 <h2>Overriding Word Wrapping</h2>
 
 <p>If you have word wrapping enabled (recommended to comply with RFC 822) and you have a very long link in your email it can
-get wrapped too, causing it to become un-clickable by the person receiving it. CodeIgniter lets you manually override
+get wrapped too, causing it to become un-clickable by the person receiving it.  CodeIgniter lets you manually override
 word wrapping within part of your message like this:</p>
 
 <code>The text of your email that<br />
diff --git a/user_guide/libraries/encryption.html b/user_guide/libraries/encryption.html
index 96ad54b..6009931 100644
--- a/user_guide/libraries/encryption.html
+++ b/user_guide/libraries/encryption.html
@@ -58,9 +58,9 @@
 
 <h1>Encryption Class</h1>
 
-<p>The Encryption Class provides two-way data encryption. It uses a scheme that either compiles
+<p>The Encryption Class provides two-way data encryption.  It uses a scheme that either compiles
 the message using a randomly hashed bitwise XOR encoding scheme, or is encrypted using
-the Mcrypt library. If Mcrypt is not available on your server the encoded message will
+the Mcrypt library.  If Mcrypt is not available on your server the encoded message will
 still provide a reasonable degree of security for encrypted sessions or other such "light" purposes.
 If Mcrypt is available, you'll be provided with a high degree of security appropriate for storage.</p>
 
@@ -72,7 +72,7 @@
 so not only must you choose the key carefully, you must never change it if you intend use it for persistent data.</p>
 
 <p>It goes without saying that you should guard your key carefully.
-Should someone gain access to your key, the data will be easily decoded. If your server is not totally under your control
+Should someone gain access to your key, the data will be easily decoded.  If your server is not totally under your control
 it's impossible to ensure key security so you may want to think carefully before using it for anything
 that requires high security, like storing credit card numbers.</p>
 
@@ -91,9 +91,9 @@
 <h2>Message Length</h2>
 
 <p>It's important for you to know that the encoded messages the encryption function generates will be approximately 2.6 times longer than the original
-message. For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up
+message.  For example, if you encrypt the string "my super secret data", which is 21 characters in length, you'll end up
 with an encoded string that is roughly 55 characters (we say "roughly" because the encoded string length increments in
-64 bit clusters, so it's not exactly linear). Keep this information in mind when selecting your data storage mechanism. Cookies,
+64 bit clusters, so it's not exactly linear).  Keep this information in mind when selecting your data storage mechanism.  Cookies,
 for example, can only hold 4K of information.</p>
 
 
@@ -124,7 +124,7 @@
 
 <h2>$this->encrypt->decode()</h2>
 
-<p>Decrypts an encoded string. Example:</p>
+<p>Decrypts an encoded string.  Example:</p>
 
 <code>
 $encrypted_string = 'APANtByIGI1BpVXZTJgcsAG8GZl8pdwwa84';<br />
@@ -142,9 +142,9 @@
 
 <h2>$this->encrypt->set_cipher();</h2>
 
-<p>Permits you to set an Mcrypt cipher. By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>. Example:</p>
+<p>Permits you to set an Mcrypt cipher.  By default it uses <samp>MCRYPT_RIJNDAEL_256</samp>.  Example:</p>
 <code>$this->encrypt->set_cipher(MCRYPT_BLOWFISH);</code>
-<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available ciphers</a>.</p>
+<p>Please visit php.net for a list of  <a href="http://php.net/mcrypt">available ciphers</a>.</p>
 
 <p>If you'd like to manually test whether your server supports Mcrypt you can use:</p>
 <code>echo ( ! function_exists('mcrypt_encrypt')) ? 'Nope' : 'Yup';</code>
@@ -152,13 +152,13 @@
 
 <h2>$this->encrypt->set_mode();</h2>
 
-<p>Permits you to set an Mcrypt mode. By default it uses <samp>MCRYPT_MODE_CBC</samp>. Example:</p>
+<p>Permits you to set an Mcrypt mode.  By default it uses <samp>MCRYPT_MODE_CBC</samp>.  Example:</p>
 <code>$this->encrypt->set_mode(MCRYPT_MODE_CFB);</code>
-<p>Please visit php.net for a list of <a href="http://php.net/mcrypt">available modes</a>.</p>
+<p>Please visit php.net for a list of  <a href="http://php.net/mcrypt">available modes</a>.</p>
 
 
 <h2>$this->encrypt->sha1();</h2>
-<p>SHA1 encoding function. Provide a string and it will return a 160 bit one way hash. Note: SHA1, just like MD5 is non-decodable. Example:</p>
+<p>SHA1 encoding function.  Provide a string and it will return a 160 bit one way hash.  Note:  SHA1, just like MD5 is non-decodable. Example:</p>
 <code>$hash = $this->encrypt->sha1('Some string');</code>
 
 <p>Many PHP installations have SHA1 support by default so if all you need is to encode a hash it's simpler to use the native
@@ -169,12 +169,12 @@
 <p>If your server does not support SHA1 you can use the provided function.</p>
 
 <h2 id="legacy">$this->encrypt->encode_from_legacy(<kbd>$orig_data</kbd>, <kbd>$legacy_mode</kbd> = MCRYPT_MODE_ECB, <kbd>$key</kbd> = '');</h2>
-<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x. It is only
-	necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt. "Light" use encryption
-	such as encrypted session data or transitory encrypted flashdata require no intervention on your part. However, existing encrypted Sessions will be
+<p>Enables you to re-encode data that was originally encrypted with CodeIgniter 1.x to be compatible with the Encryption library in CodeIgniter 2.x.  It is only
+	necessary to use this method if you have encrypted data stored permanently such as in a file or database and are on a server that supports Mcrypt.  "Light" use encryption
+	such as encrypted session data or transitory encrypted flashdata require no intervention on your part.  However, existing encrypted Sessions will be
 	destroyed since data encrypted prior to 2.x will not be decoded.</p>
 
-<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong> The algorithms in
+<p class="important"><strong>Why only a method to re-encode the data instead of maintaining legacy methods for both encoding and decoding?</strong>  The algorithms in
 	the Encryption library have improved in CodeIgniter 2.x	both for performance and security, and we do not wish to encourage continued use of the older methods.
 	You can of course extend the Encryption library if you wish and replace the new methods with the old and retain seamless compatibility with CodeIgniter 1.x
 	encrypted data, but this a decision that a developer should make cautiously and deliberately, if at all.</p>
@@ -195,13 +195,13 @@
 <tr>
 	<td class="td"><strong>$legacy_mode</strong></td>
 	<td class="td">MCRYPT_MODE_ECB</td>
-	<td class="td">The Mcrypt mode that was used to generate the original encrypted data. CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will
+	<td class="td">The Mcrypt mode that was used to generate the original encrypted data.  CodeIgniter 1.x's default was MCRYPT_MODE_ECB, and it will
 		assume that to be the case unless overridden by this parameter.</td>
 </tr>
 <tr>
 	<td class="td"><strong>$key</strong></td>
 	<td class="td">n/a</td>
-	<td class="td">The encryption key. This it typically specified in your config file as outlined above.</td>
+	<td class="td">The encryption key.  This it typically specified in your config file as outlined above.</td>
 </tr>
 </table>
 
diff --git a/user_guide/libraries/file_uploading.html b/user_guide/libraries/file_uploading.html
index a248267..e4e842e 100644
--- a/user_guide/libraries/file_uploading.html
+++ b/user_guide/libraries/file_uploading.html
@@ -58,7 +58,7 @@
 
 <h1>File Uploading Class</h1>
 
-<p>CodeIgniter's File Uploading Class permits files to be uploaded. You can set various
+<p>CodeIgniter's File Uploading Class permits files to be uploaded.  You can set various
 preferences, restricting the type and size of the files.</p>
 
 
@@ -80,7 +80,7 @@
 
 
 
-<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp>
+<p>Using a text editor, create a form called <dfn>upload_form.php</dfn>.  In it, place this code and save it to your <samp>applications/views/</samp>
 folder:</p>
 
 
@@ -106,8 +106,8 @@
 &lt;/body>
 &lt;/html></textarea>
 
-<p>You'll notice we are using a form helper to create the opening form tag. File uploads require a multipart form, so the helper
-creates the proper syntax for you. You'll also notice we have an $error variable. This is so we can show error messages in the event
+<p>You'll notice we are using a form helper to create the opening form tag.  File uploads require a multipart form, so the helper
+creates the proper syntax for you.  You'll also notice we have an $error variable.  This is so we can show error messages in the event
 the user does something wrong.</p>
 
 
@@ -138,7 +138,7 @@
 
 <h2>The Controller</h2>
 
-<p>Using a text editor, create a controller called <dfn>upload.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp>
+<p>Using a text editor, create a controller called <dfn>upload.php</dfn>.  In it, place this code and save it to your <samp>applications/controllers/</samp>
 folder:</p>
 
 
@@ -162,8 +162,8 @@
 		$config['upload_path'] = './uploads/';
 		$config['allowed_types'] = 'gif|jpg|png';
 		$config['max_size']	= '100';
-		$config['max_width'] = '1024';
-		$config['max_height'] = '768';
+		$config['max_width']  = '1024';
+		$config['max_height']  = '768';
 
 		$this->load->library('upload', $config);
 
@@ -186,7 +186,7 @@
 
 <h2>The Upload Folder</h2>
 
-<p>You'll need a destination folder for your uploaded images. Create a folder at the root of your CodeIgniter installation called
+<p>You'll need a destination folder for your uploaded images.  Create a folder at the root of your CodeIgniter installation called
 <dfn>uploads</dfn> and set its file permissions to 777.</p>
 
 
@@ -215,26 +215,26 @@
 
 <h2>Setting Preferences</h2>
 
-<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences. In the controller you
+<p>Similar to other libraries, you'll control what is allowed to be upload based on your preferences.  In the controller you
 built above you set the following preferences:</p>
 
 <code>$config['upload_path'] = './uploads/';<br />
 $config['allowed_types'] = 'gif|jpg|png';<br />
 $config['max_size']	= '100';<br />
-$config['max_width'] = '1024';<br />
-$config['max_height'] = '768';<br />
+$config['max_width']  = '1024';<br />
+$config['max_height']  = '768';<br />
 <br />
 $this->load->library('upload', $config);<br /><br />
 
-// Alternately you can set preferences by calling the initialize function. Useful if you auto-load the class:<br />
+// Alternately you can set preferences by calling the initialize function.  Useful if you auto-load the class:<br />
 $this->upload->initialize($config);</code>
 
-<p>The above preferences should be fairly self-explanatory. Below is a table describing all available preferences.</p>
+<p>The above preferences should be fairly self-explanatory.  Below is a table describing all available preferences.</p>
 
 
 <h2>Preferences</h2>
 
-<p>The following preferences are available. The default value indicates what will be used if you do not specify that preference.</p>
+<p>The following preferences are available.  The default value indicates what will be used if you do not specify that preference.</p>
 
 <table cellpadding="0" cellspacing="1" border="0" style="width:100%" class="tableborder">
 <tr>
@@ -248,14 +248,14 @@
 <td class="td"><strong>upload_path</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">The path to the folder where the upload should be placed. The folder must be writable and the path can be absolute or relative.</td>
+<td class="td">The path to the folder where the upload should be placed.  The folder must be writable and the path can be absolute or relative.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>allowed_types</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">The mime types corresponding to the types of files you allow to be uploaded. Usually the file extension can be used as the mime type. Separate multiple types with a pipe.</td>
+<td class="td">The mime types corresponding to the types of files you allow to be uploaded.  Usually the file extension can be used as the mime type.  Separate multiple types with a pipe.</td>
 </tr>
 
 
@@ -264,7 +264,7 @@
 <td class="td">None</td>
 <td class="td">Desired file name</td>
 <td class="td">
-	<p>If set CodeIgniter will rename the uploaded file to this name. The extension provided in the file name must also be an allowed file type.</p>
+	<p>If set CodeIgniter will rename the uploaded file to this name.  The extension provided in the file name must also be an allowed file type.</p>
 </td>
 </tr>
 
@@ -280,28 +280,28 @@
 <td class="td"><strong>max_size</strong></td>
 <td class="td">0</td>
 <td class="td">None</td>
-<td class="td">The maximum size (in kilobytes) that the file can be. Set to zero for no limit. Note: Most PHP installations have their own limit, as specified in the php.ini file. Usually 2 MB (or 2048 KB) by default.</td>
+<td class="td">The maximum size (in kilobytes) that the file can be.  Set to zero for no limit. Note:  Most PHP installations have their own limit, as specified in the php.ini file.  Usually 2 MB (or 2048 KB) by default.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>max_width</strong></td>
 <td class="td">0</td>
 <td class="td">None</td>
-<td class="td">The maximum width (in pixels) that the file can be. Set to zero for no limit.</td>
+<td class="td">The maximum width (in pixels) that the file can be.  Set to zero for no limit.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>max_height</strong></td>
 <td class="td">0</td>
 <td class="td">None</td>
-<td class="td">The maximum height (in pixels) that the file can be. Set to zero for no limit.</td>
+<td class="td">The maximum height (in pixels) that the file can be.  Set to zero for no limit.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>max_filename</strong></td>
 <td class="td">0</td>
 <td class="td">None</td>
-<td class="td">The maximum length that a file name can be. Set to zero for no limit.</td>
+<td class="td">The maximum length that a file name can be.  Set to zero for no limit.</td>
 </tr>
 
 <tr>
@@ -323,7 +323,7 @@
 <h2>Setting preferences in a config file</h2>
 
 <p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
-Simply create a new file called the <var>upload.php</var>, add the <var>$config</var>
+Simply create a new file called the <var>upload.php</var>,  add the <var>$config</var>
 array in that file. Then save the file in: <var>config/upload.php</var> and it will be used automatically. You
 will NOT need to use the <dfn>$this->upload->initialize</dfn> function if you save your preferences in a config file.</p>
 
@@ -335,7 +335,7 @@
 
 <h2>$this->upload->do_upload()</h2>
 
-<p>Performs the upload based on the preferences you've set. Note: By default the upload routine expects the file to come from a form field
+<p>Performs the upload based on the preferences you've set.  Note:  By default the upload routine expects the file to come from a form field
 called <dfn>userfile</dfn>, and the form must be a "multipart type:</p>
 
 <code>&lt;form method="post" action="some_action" enctype="multipart/form-data" /></code>
@@ -349,11 +349,11 @@
 
 <h2>$this->upload->display_errors()</h2>
 
-<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false. The function does not echo automatically, it
+<p>Retrieves any error messages if the <dfn>do_upload()</dfn> function returned false.  The function does not echo automatically, it
 returns the data so you can assign it however you need.</p>
 
 <h3>Formatting Errors</h3>
-<p>By default the above function wraps any errors within &lt;p> tags. You can set your own delimiters like this:</p>
+<p>By default the above function wraps any errors within &lt;p> tags.  You can set your own delimiters like this:</p>
 
 <code>$this->upload->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code>
 
@@ -403,7 +403,7 @@
 <td class="td">The file name without the extension</td></tr>
 
 <tr><td class="td"><strong>orig_name</strong></td>
-<td class="td">The original file name. This is only useful if you use the encrypted name option.</td></tr>
+<td class="td">The original file name.  This is only useful if you use the encrypted name option.</td></tr>
 
 <tr><td class="td"><strong>client_name</strong></td>
 <td class="td">The file name as supplied by the client user agent, prior to any file name preparation or incrementing.</td></tr>
@@ -415,7 +415,7 @@
 <td class="td">The file size in kilobytes</td></tr>
 
 <tr><td class="td"><strong>is_image</strong></td>
-<td class="td">Whether the file is an image or not. 1 = image. 0 = not.</td></tr>
+<td class="td">Whether the file is an image or not.  1 = image. 0 = not.</td></tr>
 
 <tr><td class="td"><strong>image_width</strong></td>
 <td class="td">Image width.</td></tr>
@@ -424,10 +424,10 @@
 <td class="td">Image height</td></tr>
 
 <tr><td class="td"><strong>image_type</strong></td>
-<td class="td">Image type. Typically the file extension without the period.</td></tr>
+<td class="td">Image type.  Typically the file extension without the period.</td></tr>
 
 <tr><td class="td"><strong>image_size_str</strong></td>
-<td class="td">A string containing the width and height. Useful to put into an image tag.</td></tr>
+<td class="td">A string containing the width and height.  Useful to put into an image tag.</td></tr>
 
 
 </table>
diff --git a/user_guide/libraries/form_validation.html b/user_guide/libraries/form_validation.html
index 54908d4..8fdcd14 100644
--- a/user_guide/libraries/form_validation.html
+++ b/user_guide/libraries/form_validation.html
@@ -113,10 +113,10 @@
 <ol>
 <li>Check for required data.</li>
 <li>Verify that the data is of the correct type, and meets the correct criteria. For example, if a username is submitted
-it must be validated to contain only permitted characters. It must be of a minimum length,
+it must be validated to contain only permitted characters.  It must be of a minimum length,
 and not exceed a maximum length. The username can't be someone else's existing username, or perhaps even a reserved word. Etc.</li>
 <li>Sanitize the data for security.</li>
-<li>Pre-format the data if needed (Does the data need to be trimmed? HTML encoded? Etc.)</li>
+<li>Pre-format the data if needed (Does the data need to be trimmed?  HTML encoded?  Etc.)</li>
 <li>Prep the data for insertion in the database.</li>
 </ol>
 
@@ -150,7 +150,7 @@
 
 <h2>The Form</h2>
 
-<p>Using a text editor, create a form called <dfn>myform.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp>
+<p>Using a text editor, create a form called <dfn>myform.php</dfn>.  In it, place this code and save it to your <samp>applications/views/</samp>
 folder:</p>
 
 
@@ -191,7 +191,7 @@
 <h2>The Success Page</h2>
 
 
-<p>Using a text editor, create a form called <dfn>formsuccess.php</dfn>. In it, place this code and save it to your <samp>applications/views/</samp>
+<p>Using a text editor, create a form called <dfn>formsuccess.php</dfn>.  In it, place this code and save it to your <samp>applications/views/</samp>
 folder:</p>
 
 
@@ -215,7 +215,7 @@
 <a name="thecontroller"></a>
 <h2>The Controller</h2>
 
-<p>Using a text editor, create a controller called <dfn>form.php</dfn>. In it, place this code and save it to your <samp>applications/controllers/</samp>
+<p>Using a text editor, create a controller called <dfn>form.php</dfn>.  In it, place this code and save it to your <samp>applications/controllers/</samp>
 folder:</p>
 
 
@@ -248,10 +248,10 @@
 
 <code>example.com/index.php/<var>form</var>/</code>
 
-<p><dfn>If you submit the form you should simply see the form reload. That's because you haven't set up any validation
+<p><dfn>If you submit the form you should simply see the form reload.  That's because you haven't set up any validation
 rules yet.</dfn></p>
 
-<p><strong>Since you haven't told the Form Validation class to validate anything yet, it returns <kbd>FALSE</kbd> (boolean false) by default. The <samp>run()</samp>
+<p><strong>Since you haven't told the Form Validation class to validate anything yet, it returns <kbd>FALSE</kbd> (boolean false) by default.  The <samp>run()</samp>
 function only returns <kbd>TRUE</kbd> if it has successfully applied your rules without any of them failing.</strong></p>
 
 
@@ -263,8 +263,8 @@
 
 <ol>
 <li>It uses a <dfn>form helper</dfn> to create the form opening.
-Technically, this isn't necessary. You could create the form using standard HTML. However, the benefit of using the helper
-is that it generates the action URL for you, based on the URL in your config file. This makes your application more portable in the event your URLs change.</li>
+Technically, this isn't necessary.  You could create the form using standard HTML.  However, the benefit of using the helper
+is that it generates the action URL for you, based on the URL in your config file.  This makes your application more portable in the event your URLs change.</li>
 
 <li>At the top of the form you'll notice the following function call:
 <code>&lt;?php echo validation_errors(); ?&gt;</code>
@@ -341,7 +341,7 @@
 If you submit the form with all the fields populated you'll see your success page.</dfn></p>
 
 <p class="important"><strong>Note:</strong> The form fields are not yet being re-populated with the data when
-there is an error. We'll get to that shortly.</p>
+there is an error.  We'll get to that shortly.</p>
 
 
 
@@ -387,7 +387,7 @@
 <a name="cascadingrules"></a>
 <h2>Cascading Rules</h2>
 
-<p>CodeIgniter lets you pipe multiple rules together. Let's try it. Change your rules in the third parameter of rule setting function, like this:</p>
+<p>CodeIgniter lets you pipe multiple rules together.  Let's try it. Change your rules in the third parameter of rule setting function, like this:</p>
 
 <code>
 $this->form_validation->set_rules('username', 'Username', 'required|min_length[5]|max_length[12]');<br />
@@ -427,7 +427,7 @@
 the "xss_clean" function, which removes malicious data.</p>
 
 <p><strong>Any native PHP function that accepts one parameter can be used as a rule, like <dfn>htmlspecialchars</dfn>,
-<dfn>trim</dfn>, <dfn>MD5</dfn>, etc.</strong></p>
+<dfn>trim</dfn>,  <dfn>MD5</dfn>, etc.</strong></p>
 
 <p><strong>Note:</strong> You will generally want to use the prepping functions <strong>after</strong>
 the validation rules so if there is an error, the original data will be shown in the form.</p>
@@ -438,7 +438,7 @@
 <a name="repopulatingform"></a>
 <h2>Re-populating the form</h2>
 
-<p>Thus far we have only been dealing with errors. It's time to repopulate the form field with the submitted data. CodeIgniter offers several helper functions
+<p>Thus far we have only been dealing with errors.  It's time to repopulate the form field with the submitted data. CodeIgniter offers several helper functions
 that permit you to do this. The one you will use most commonly is:</p>
 
 <code>set_value('field name')</code>
@@ -481,13 +481,13 @@
 </textarea>
 
 
-<p><dfn>Now reload your page and submit the form so that it triggers an error. Your form fields should now be re-populated</dfn></p>
+<p><dfn>Now reload your page and submit the form so that it triggers an error.  Your form fields should now be re-populated</dfn></p>
 
 <p class="important"><strong>Note:</strong> The <a href="#functionreference">Function Reference</a> section below contains functions that
 permit you to re-populate &lt;select> menus, radio buttons, and checkboxes.</p>
 
 
-<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p>
+<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function.  Example:</p>
 
 <code>&lt;input type="text" name="<kbd>colors[]</kbd>" value="&lt;?php echo set_value('<kbd>colors[]</kbd>'); ?>" size="50" /></code>
 
@@ -500,16 +500,16 @@
 <a name="callbacks"></a>
 <h2>Callbacks: Your own Validation Functions</h2>
 
-<p>The validation system supports callbacks to your own validation functions. This permits you to extend the validation class
-to meet your needs. For example, if you need to run a database query to see if the user is choosing a unique username, you can
-create a callback function that does that. Let's create a example of this.</p>
+<p>The validation system supports callbacks to your own validation functions.  This permits you to extend the validation class
+to meet your needs.  For example, if you need to run a database query to see if the user is choosing a unique username, you can
+create a callback function that does that.  Let's create a example of this.</p>
 
 <p>In your controller, change the "username" rule to this:</p>
 
 <code>$this->form_validation->set_rules('username', 'Username', '<kbd>callback_username_check</kbd>');</code>
 
 
-<p>Then add a new function called <dfn>username_check</dfn> to your controller. Here's how your controller should now look:</p>
+<p>Then add a new function called <dfn>username_check</dfn> to your controller.  Here's how your controller should now look:</p>
 
 
 <textarea class="textarea" style="width:100%" cols="50" rows="44">&lt;?php
@@ -553,12 +553,12 @@
 }
 ?></textarea>
 
-<p><dfn>Reload your form and submit it with the word "test" as the username. You can see that the form field data was passed to your
+<p><dfn>Reload your form and submit it with the word "test" as the username.  You can see that the form field data was passed to your
 callback function for you to process.</dfn></p>
 
 <p><strong>To invoke a callback just put the function name in a rule, with "callback_" as the rule prefix.</strong></p>
 
-<p>You can also process the form data that is passed to your callback and return it. If your callback returns anything other than a boolean TRUE/FALSE
+<p>You can also process the form data that is passed to your callback and return it.  If your callback returns anything other than a boolean TRUE/FALSE
 it is assumed that the data is your newly processed form data.</p>
 
 
@@ -568,7 +568,7 @@
 <h2>Setting Error Messages</h2>
 
 
-<p>All of the native error messages are located in the following language file: <dfn>language/english/form_validation_lang.php</dfn></p>
+<p>All of the native error messages are located in the following language file:  <dfn>language/english/form_validation_lang.php</dfn></p>
 
 <p>To set your own custom message you can either edit that file, or use the following function:</p>
 
@@ -582,7 +582,7 @@
 
 <code>$this->form_validation->set_message('username_check')</code>
 
-<p>You can also override any error message found in the language file. For example, to change the message for the "required" rule you will do this:</p>
+<p>You can also override any error message found in the language file.  For example, to change the message for the "required" rule you will do this:</p>
 
 <code>$this->form_validation->set_message('required', 'Your custom message here');</code>
 
@@ -669,9 +669,9 @@
 &lt;input type="text" name="email" value="&lt;?php echo set_value('email'); ?>" size="50" />
 </textarea>
 
-<p>If there are no errors, nothing will be shown. If there is an error, the message will appear.</p>
+<p>If there are no errors, nothing will be shown.  If there is an error, the message will appear.</p>
 
-<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function. Example:</p>
+<p><strong>Important Note:</strong> If you use an array as the name of a form field, you must supply it as an array to the function.  Example:</p>
 
 <code>&lt;?php echo form_error('<kbd>options[size]</kbd>'); ?><br />
 &lt;input type="text" name="<kbd>options[size]</kbd>" value="&lt;?php echo set_value("<kbd>options[size]</kbd>"); ?>" size="50" />
@@ -688,8 +688,8 @@
 <a name="savingtoconfig"></a>
 <h1>Saving Sets of Validation Rules to a Config File</h1>
 
-<p>A nice feature of the Form Validation class is that it permits you to store all your validation rules for your entire application in a config file. You
-can organize these rules into "groups". These groups can either be loaded automatically when a matching controller/function is called, or
+<p>A nice feature of the Form Validation class is that it permits you to store all your validation rules for your entire application in a config file.  You
+can organize these rules into "groups".  These groups can either be loaded automatically when a matching controller/function is called, or
 you can manually call each set as needed.</p>
 
 <h3>How to save your rules</h3>
@@ -728,8 +728,8 @@
 
 <h3>Creating Sets of Rules</h3>
 
-<p>In order to organize your rules into "sets" requires that you place them into "sub arrays". Consider the following example, showing two sets of rules.
-We've arbitrarily called these two rules "signup" and "email". You can name your rules anything you want:</p>
+<p>In order to organize your rules into "sets" requires that you place them into "sub arrays".  Consider the following example, showing two sets of rules.
+We've arbitrarily called these two rules "signup" and "email".  You can name your rules anything you want:</p>
 
 
 <code>$config = array(<br />
@@ -783,7 +783,7 @@
 
 <h3>Calling a Specific Rule Group</h3>
 
-<p>In order to call a specific group you will pass its name to the <kbd>run()</kbd> function. For example, to call the <kbd>signup</kbd> rule you will do this:</p>
+<p>In order to call a specific group you will pass its name to the <kbd>run()</kbd> function.  For example, to call the <kbd>signup</kbd> rule you will do this:</p>
 
 <code>
 if ($this->form_validation->run('<kbd>signup</kbd>') == FALSE)<br />
@@ -800,8 +800,8 @@
 
 <h3>Associating a Controller Function with a Rule Group</h3>
 
-<p>An alternate (and more automatic) method of calling a rule group is to name it according to the controller class/function you intend to use it with. For example, let's say you
-have a controller named <kbd>Member</kbd> and a function named <kbd>signup</kbd>. Here's what your class might look like:</p>
+<p>An alternate (and more automatic) method of calling a rule group is to name it according to the controller class/function you intend to use it with.  For example, let's say you
+have a controller named <kbd>Member</kbd> and a function named <kbd>signup</kbd>.  Here's what your class might look like:</p>
 
 <code>
 &lt;?php<br /><br />
@@ -860,7 +860,7 @@
 <a name="arraysasfields"></a>
 <h1>Using Arrays as Field Names</h1>
 
-<p>The Form Validation class supports the use of arrays as field names. Consider this example:</p>
+<p>The Form Validation class supports the use of arrays as field names.  Consider this example:</p>
 
 <code>&lt;input type="text" name="<kbd>options[]</kbd>" value="" size="50" /></code>
 
@@ -1147,13 +1147,13 @@
 
 <h2>$this->form_validation->run();</h2>
 
-<p>Runs the validation routines. Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation
+<p>Runs the validation routines.  Returns boolean TRUE on success and FALSE on failure. You can optionally pass the name of the validation
 group via the function, as described in: <a href="#savingtoconfig">Saving Groups of Validation Rules to a Config File</a>.</p>
 
 
 <h2>$this->form_validation->set_message();</h2>
 
-<p>Permits you to set custom error messages. See <a href="#settingerrors">Setting Error Messages</a> above.</p>
+<p>Permits you to set custom error messages.  See <a href="#settingerrors">Setting Error Messages</a> above.</p>
 
 
 <p>&nbsp;</p>
@@ -1161,25 +1161,25 @@
 <a name="helperreference"></a>
 <h1>Helper Reference</h1>
 
-<p>The following helper functions are available for use in the view files containing your forms. Note that these are procedural functions, so they
+<p>The following helper functions are available for use in the view files containing your forms.  Note that these are procedural functions, so they
 <strong>do not</strong> require you to prepend them with $this->form_validation.</p>
 
 <h2>form_error()</h2>
 
-<p>Shows an individual error message associated with the field name supplied to the function. Example:</p>
+<p>Shows an individual error message associated with the field name supplied to the function.  Example:</p>
 
 <code>&lt;?php echo form_error('username'); ?></code>
 
-<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p>
+<p>The error delimiters can be optionally specified.  See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p>
 
 
 
 <h2>validation_errors()</h2>
-<p>Shows all error messages as a string: Example:</p>
+<p>Shows all error messages as a string:  Example:</p>
 
 <code>&lt;?php echo validation_errors(); ?></code>
 
-<p>The error delimiters can be optionally specified. See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p>
+<p>The error delimiters can be optionally specified.  See the <a href="#errordelimiters">Changing the Error Delimiters</a> section above.</p>
 
 
 
@@ -1194,7 +1194,7 @@
 
 <h2>set_select()</h2>
 
-<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected. The first parameter
+<p>If you use a <dfn>&lt;select></dfn> menu, this function permits you to display the menu item that was selected.  The first parameter
 must contain the name of the select menu, the second parameter must contain the value of
 each item, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE).</p>
 
@@ -1202,16 +1202,16 @@
 
 <code>
 &lt;select name="myselect"><br />
-&lt;option value="one" <dfn>&lt;?php echo set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br />
-&lt;option value="two" <dfn>&lt;?php echo set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br />
-&lt;option value="three" <dfn>&lt;?php echo set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br />
+&lt;option value="one" <dfn>&lt;?php echo  set_select('myselect', 'one', TRUE); ?></dfn> >One&lt;/option><br />
+&lt;option value="two" <dfn>&lt;?php echo  set_select('myselect', 'two'); ?></dfn> >Two&lt;/option><br />
+&lt;option value="three" <dfn>&lt;?php echo  set_select('myselect', 'three'); ?></dfn> >Three&lt;/option><br />
 &lt;/select>
 </code>
 
 
 <h2>set_checkbox()</h2>
 
-<p>Permits you to display a checkbox in the state it was submitted. The first parameter
+<p>Permits you to display a checkbox in the state it was submitted.  The first parameter
 must contain the name of the checkbox, the second parameter must contain its value, and the third (optional) parameter lets you set an item as the default (use boolean TRUE/FALSE). Example:</p>
 
 <code>&lt;input type="checkbox" name="mycheck[]" value="1" <dfn>&lt;?php echo set_checkbox('mycheck[]', '1'); ?></dfn> /><br />
@@ -1222,8 +1222,8 @@
 
 <p>Permits you to display radio buttons in the state they were submitted. This function is identical to the <strong>set_checkbox()</strong> function above.</p>
 
-<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo set_radio('myradio', '1', TRUE); ?></dfn> /><br />
-&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo set_radio('myradio', '2'); ?></dfn> /></code>
+<code>&lt;input type="radio" name="myradio" value="1" <dfn>&lt;?php echo  set_radio('myradio', '1', TRUE); ?></dfn> /><br />
+&lt;input type="radio" name="myradio" value="2" <dfn>&lt;?php echo  set_radio('myradio', '2'); ?></dfn> /></code>
 
 
 
diff --git a/user_guide/libraries/ftp.html b/user_guide/libraries/ftp.html
index c318bc1..43b949a 100644
--- a/user_guide/libraries/ftp.html
+++ b/user_guide/libraries/ftp.html
@@ -59,7 +59,7 @@
 <h1>FTP Class</h1>
 
 <p>CodeIgniter's FTP Class permits files to be transfered to a remote server. Remote files can also be moved, renamed,
-and deleted. The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.</p>
+and deleted.  The FTP class also includes a "mirroring" function that permits an entire local directory to be recreated remotely via FTP.</p>
 
 <p class="important"><strong>Note:</strong>&nbsp; SFTP and SSL FTP protocols are not supported, only standard FTP.</p>
 
@@ -74,7 +74,7 @@
 <h2>Usage Examples</h2>
 
 <p>In this example a connection is opened to the FTP server, and a local file is read and uploaded in ASCII mode. The
-file permissions are set to 755. Note: Setting permissions requires PHP 5.</p>
+file permissions are set to 755.  Note: Setting permissions requires PHP 5.</p>
 
 <code>
 $this->load->library('ftp');<br />
@@ -157,26 +157,26 @@
 <h3>Setting FTP Preferences in a Config File</h3>
 
 <p>If you prefer you can store your FTP preferences in a config file.
-Simply create a new file called the <var>ftp.php</var>, add the <var>$config</var>
+Simply create a new file called the <var>ftp.php</var>,  add the <var>$config</var>
 array in that file. Then save the file at <var>config/ftp.php</var> and it will be used automatically.</p>
 
 <h3>Available connection options:</h3>
 
 
 <ul>
-<li><strong>hostname</strong> - the FTP hostname. Usually something like:&nbsp; <dfn>ftp.example.com</dfn></li>
+<li><strong>hostname</strong> - the FTP hostname.  Usually something like:&nbsp; <dfn>ftp.example.com</dfn></li>
 <li><strong>username</strong> - the FTP username.</li>
 <li><strong>password</strong> - the FTP password.</li>
 <li><strong>port</strong> - The port number. Set to <dfn>21</dfn> by default.</li>
 <li><strong>debug</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to enable debugging to display error messages.</li>
-<li><strong>passive</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to use passive mode. Passive is set automatically by default.</li>
+<li><strong>passive</strong> - <kbd>TRUE/FALSE</kbd> (boolean). Whether to use passive mode.  Passive is set automatically by default.</li>
 </ul>
 
 
 
 <h2>$this->ftp->upload()</h2>
 
-<p>Uploads a file to your server. You must supply the local path and the remote path, and you can optionally set the mode and permissions.
+<p>Uploads a file to your server.  You must supply the local path and the remote path, and you can optionally set the mode and permissions.
 Example:</p>
 
 
@@ -190,7 +190,7 @@
 
 <h2>$this->ftp->download()</h2>
 
-<p>Downloads a file from your server. You must supply the remote path and the local path, and you can optionally set the mode.
+<p>Downloads a file from your server.  You must supply the remote path and the local path, and you can optionally set the mode.
 Example:</p>
 
 <code>$this->ftp->download('/public_html/myfile.html', '/local/path/to/myfile.html', 'ascii');</code>
@@ -202,7 +202,7 @@
 
 
 <h2>$this->ftp->rename()</h2>
-<p>Permits you to rename a file. Supply the source file name/path and the new file name/path.</p>
+<p>Permits you to rename a file.  Supply the source file name/path and the new file name/path.</p>
 
 <code>
 // Renames green.html to blue.html<br />
@@ -210,7 +210,7 @@
 </code>
 
 <h2>$this->ftp->move()</h2>
-<p>Lets you move a file. Supply the source and destination paths:</p>
+<p>Lets you move a file.  Supply the source and destination paths:</p>
 
 <code>
 // Moves blog.html from "joe" to "fred"<br />
@@ -221,7 +221,7 @@
 
 
 <h2>$this->ftp->delete_file()</h2>
-<p>Lets you delete a file. Supply the source path with the file name.</p>
+<p>Lets you delete a file.  Supply the source path with the file name.</p>
 
 <code>
 $this->ftp->delete_file('/public_html/joe/blog.html');
@@ -229,10 +229,10 @@
 
 
 <h2>$this->ftp->delete_dir()</h2>
-<p>Lets you delete a directory and everything it contains. Supply the source path to the directory with a trailing slash.</p>
+<p>Lets you delete a directory and everything it contains.  Supply the source path to the directory with a trailing slash.</p>
 
-<p class="important"><strong>Important</strong>&nbsp; Be VERY careful with this function. It will recursively delete
-<b>everything</b> within the supplied path, including sub-folders and all files. Make absolutely sure your path is correct.
+<p class="important"><strong>Important</strong>&nbsp; Be VERY careful with this function.  It will recursively delete
+<b>everything</b> within the supplied path, including sub-folders and all files.  Make absolutely sure your path is correct.
 Try using the <kbd>list_files()</kbd> function first to verify that your path is correct.</p>
 
 <code>
@@ -242,7 +242,7 @@
 
 
 <h2>$this->ftp->list_files()</h2>
-<p>Permits you to retrieve a list of files on your server returned as an <dfn>array</dfn>. You must supply
+<p>Permits you to retrieve a list of files on your server returned as an <dfn>array</dfn>.  You must supply
 the path to the desired directory.</p>
 
 <code>
@@ -255,7 +255,7 @@
 <h2>$this->ftp->mirror()</h2>
 
 <p>Recursively reads a local folder and everything it contains (including sub-folders) and creates a
-mirror via FTP based on it. Whatever the directory structure of the original file path will be recreated on the server.
+mirror via FTP based on it.  Whatever the directory structure of the original file path will be recreated on the server.
 You must supply a source path and a destination path:</p>
 
 <code>
@@ -266,7 +266,7 @@
 
 <h2>$this->ftp->mkdir()</h2>
 
-<p>Lets you create a directory on your server. Supply the path ending in the folder name you wish to create, with a trailing slash.
+<p>Lets you create a directory on your server.  Supply the path ending in the folder name you wish to create, with a trailing slash.
 Permissions can be set by passed an <kbd>octal</kbd> value in the second parameter (if you are running PHP 5).</p>
 
 <code>
@@ -277,7 +277,7 @@
 
 <h2>$this->ftp->chmod()</h2>
 
-<p>Permits you to set file permissions. Supply the path to the file or folder you wish to alter permissions on:</p>
+<p>Permits you to set file permissions.  Supply the path to the file or folder you wish to alter permissions on:</p>
 
 <code>
 // Chmod "bar" to 777<br />
@@ -288,7 +288,7 @@
 
 
 <h2>$this->ftp->close();</h2>
-<p>Closes the connection to your server. It's recommended that you use this when you are finished uploading.</p>
+<p>Closes the connection to your server.  It's recommended that you use this when you are finished uploading.</p>
 
 
 
diff --git a/user_guide/libraries/image_lib.html b/user_guide/libraries/image_lib.html
index e6d38fc..dbf0776 100644
--- a/user_guide/libraries/image_lib.html
+++ b/user_guide/libraries/image_lib.html
@@ -68,11 +68,11 @@
 <li>Image Watermarking</li>
 </ul>
 
-<p>All three major image libraries are supported: GD/GD2, NetPBM, and ImageMagick</p>
+<p>All three major image libraries are supported:  GD/GD2, NetPBM, and ImageMagick</p>
 
 <p class="important"><strong>Note:</strong> Watermarking is only available using the GD/GD2 library.
 In addition, even though other libraries are supported, GD is required in
-order for the script to calculate the image properties. The image processing, however, will be performed with the
+order for the script to calculate the image properties.  The image processing, however, will be performed with the
 library you specify.</p>
 
 
@@ -82,14 +82,14 @@
 using the <dfn>$this->load-&gt;library</dfn> function:</p>
 <code>$this->load->library('image_lib');</code>
 
-<p>Once the library is loaded it will be ready for use. The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p>
+<p>Once the library is loaded it will be ready for use.  The image library object you will use to call all functions is: <dfn>$this->image_lib</dfn></p>
 
 
 <h2>Processing an Image</h2>
 
 <p>Regardless of the type of processing you would like to perform (resizing, cropping, rotation, or watermarking), the general process is
 identical. You will set some preferences corresponding to the action you intend to perform, then
-call one of four available processing functions. For example, to create an image thumbnail you'll do this:</p>
+call one of four available processing functions.  For example, to create an image thumbnail you'll do this:</p>
 
 <code>$config['image_library'] = 'gd2';<br />
 $config['source_image']	= '/path/to/image/mypic.jpg';<br />
@@ -106,7 +106,7 @@
 <p>The above code tells the <dfn>image_resize</dfn> function to look for an image called <em>mypic.jpg</em>
 located in the <dfn>source_image</dfn> folder, then create a thumbnail that is 75 X 50 pixels using the GD2 <dfn>image_library</dfn>.
 Since the <dfn>maintain_ratio</dfn> option is enabled, the thumb will be as close to the target <dfn>width</dfn> and
-<dfn>height</dfn> as possible while preserving the original aspect ratio. The thumbnail will be called <em>mypic_thumb.jpg</em>
+<dfn>height</dfn> as possible while preserving the original aspect ratio.  The thumbnail will be called <em>mypic_thumb.jpg</em>
 </p>
 
 <p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the
@@ -126,7 +126,7 @@
 <li>$this-&gt;image_lib-&gt;clear()</li>
 </ul>
 
-<p>These functions return boolean TRUE upon success and FALSE for failure. If they fail you can retrieve the
+<p>These functions return boolean TRUE upon success and FALSE for failure.  If they fail you can retrieve the
 error message using this function:</p>
 
 <code>echo $this->image_lib->display_errors();</code>
@@ -138,7 +138,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;echo $this->image_lib->display_errors();<br />
 }</code>
 
-<p>Note: You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing
+<p>Note:  You can optionally specify the HTML formatting to be applied to the errors, by submitting the opening/closing
 tags in the function, like this:</p>
 
 <code>$this->image_lib->display_errors('<var>&lt;p></var>', '<var>&lt;/p></var>');</code>
@@ -146,11 +146,11 @@
 
 <h2>Preferences</h2>
 
-<p>The preferences described below allow you to tailor the image processing to suit your needs.</p>
+<p>The  preferences described below allow you to tailor the image processing to suit your needs.</p>
 
 <p>Note that not all preferences are available for every
-function. For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height
-preferences have no effect on cropping. The "availability" column indicates which functions support a given preference.</p>
+function.  For example, the x/y axis preferences are only available for image cropping. Likewise, the width and height
+preferences have no effect on cropping.  The "availability" column indicates which functions support a given preference.</p>
 
 <p>Availability Legend:</p>
 
@@ -187,7 +187,7 @@
 <td class="td"><strong>library_path</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">Sets the server path to your ImageMagick or NetPBM library. If you use either of those libraries you must supply the path.</td>
+<td class="td">Sets the server path to your ImageMagick or NetPBM library.  If you use either of those libraries you must supply the path.</td>
 <td class="td">R, C, X</td>
 </tr>
 
@@ -195,7 +195,7 @@
 <td class="td"><strong>source_image</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td>
+<td class="td">Sets the source image name/path.  The path must be a relative or absolute server path, not a URL.</td>
 <td class="td">R, C, S, W</td>
 </tr>
 
@@ -203,7 +203,7 @@
 <td class="td"><strong>dynamic_output</strong></td>
 <td class="td">FALSE</td>
 <td class="td">TRUE/FALSE (boolean)</td>
-<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
+<td class="td">Determines whether the new image file should be written to disk or generated dynamically.  Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
 <td class="td">R, C, X, W</td>
 </tr>
 
@@ -221,7 +221,7 @@
 <td class="td"><strong>new_image</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">Sets the destination image name/path. You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td>
+<td class="td">Sets the destination image name/path.  You'll use this preference when creating an image copy. The path must be a relative or absolute server path, not a URL.</td>
 <td class="td">R, C, X, W</td>
 </tr>
 
@@ -253,7 +253,7 @@
 <td class="td"><strong>thumb_marker</strong></td>
 <td class="td">_thumb</td>
 <td class="td">None</td>
-<td class="td">Specifies the thumbnail indicator. It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td>
+<td class="td">Specifies the thumbnail indicator.  It will be inserted just before the file extension, so mypic.jpg would become mypic_thumb.jpg</td>
 <td class="td">R</td>
 </tr>
 
@@ -281,7 +281,7 @@
 <td class="td"><strong>rotation_angle</strong></td>
 <td class="td">None</td>
 <td class="td">90, 180, 270, vrt, hor</td>
-<td class="td">Specifies the angle of rotation when rotating images. Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td>
+<td class="td">Specifies the angle of rotation when rotating images.  Note that PHP rotates counter-clockwise, so a 90 degree rotation to the right must be specified as 270.</td>
 <td class="td">X</td>
 </tr>
 
@@ -306,7 +306,7 @@
 <h2>Setting preferences in a config file</h2>
 
 <p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
-Simply create a new file called <var>image_lib.php</var>, add the <var>$config</var>
+Simply create a new file called <var>image_lib.php</var>,  add the <var>$config</var>
 array in that file. Then save the file in: <var>config/image_lib.php</var> and it will be used automatically. You
 will NOT need to use the <dfn>$this->image_lib->initialize</dfn> function if you save your preferences in a config file.</p>
 
@@ -319,7 +319,7 @@
 <p>For practical purposes there is no difference between creating a copy and creating
 a thumbnail except a thumb will have the thumbnail marker as part of the name (ie, mypic_thumb.jpg).</p>
 
-<p>All preferences listed in the table above are available for this function except these three: rotation_angle, x_axis, and y_axis.</p>
+<p>All preferences listed in the table above are available for this function except these three:  rotation_angle, x_axis, and y_axis.</p>
 
 <h3>Creating a Thumbnail</h3>
 
@@ -358,7 +358,7 @@
 <code>$config['x_axis'] = '100';<br />
 $config['y_axis'] = '40';</code>
 
-<p>All preferences listed in the table above are available for this function except these: rotation_angle, width, height, create_thumb, new_image.</p>
+<p>All preferences listed in the table above are available for this function except these:  rotation_angle, width, height, create_thumb, new_image.</p>
 
 <p>Here's an example showing how you might crop an image:</p>
 
@@ -378,8 +378,8 @@
 
 
 <p>Note: Without a visual interface it is difficult to crop images, so this function is not very useful
-unless you intend to build such an interface. That's exactly what we did using for the photo
-gallery module in ExpressionEngine, the CMS we develop. We added a JavaScript UI that lets the cropping
+unless you intend to build such an interface.  That's exactly what we did using for the photo
+gallery module in ExpressionEngine, the CMS we develop.  We added a JavaScript UI that lets the cropping
 area be selected.</p>
 
 <h2>$this->image_lib->rotate()</h2>
@@ -443,7 +443,7 @@
 
 <p>Just as with the other functions (resizing, cropping, and rotating) the general process for watermarking
 involves setting the preferences corresponding to the action you intend to perform, then
-calling the watermark function. Here is an example:</p>
+calling the watermark function.  Here is an example:</p>
 
 <code>
 $config['source_image']	= '/path/to/image/mypic.jpg';<br />
@@ -452,9 +452,9 @@
 $config['wm_font_path'] = './system/fonts/texb.ttf';<br />
 $config['wm_font_size']	= '16';<br />
 $config['wm_font_color'] = 'ffffff';<br />
-$config['wm_vrt_alignment'] = 'bottom';<br />
-$config['wm_hor_alignment'] = 'center';<br />
-$config['wm_padding'] = '20';<br />
+$config['wm_vrt_alignment']  = 'bottom';<br />
+$config['wm_hor_alignment']  = 'center';<br />
+$config['wm_padding']  = '20';<br />
 <br />
 $this->image_lib->initialize($config);
 <br />
@@ -462,7 +462,7 @@
 $this->image_lib->watermark();</code>
 
 
-<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe". The watermark
+<p>The above example will use a 16 pixel True Type font to create the text "Copyright 2006 - John Doe".  The watermark
 will be positioned at the bottom/center of the image, 20 pixels from the bottom of the image.</p>
 
 <p class="important"><strong>Note:</strong> In order for the image class to be allowed to do any processing, the image file must have &quot;write&quot; file permissions. For example, 777.</p>
@@ -491,14 +491,14 @@
 <td class="td"><strong>source_image</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">Sets the source image name/path. The path must be a relative or absolute server path, not a URL.</td>
+<td class="td">Sets the source image name/path.  The path must be a relative or absolute server path, not a URL.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>dynamic_output</strong></td>
 <td class="td">FALSE</td>
 <td class="td">TRUE/FALSE (boolean)</td>
-<td class="td">Determines whether the new image file should be written to disk or generated dynamically. Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
+<td class="td">Determines whether the new image file should be written to disk or generated dynamically.  Note: If you choose the dynamic setting, only one image can be shown at a time, and it can't be positioned on the page. It simply outputs the raw image dynamically to your browser, along with image headers.</td>
 </tr>
 
 <tr>
@@ -563,28 +563,28 @@
 <td class="td"><strong>wm_text</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">The text you would like shown as the watermark. Typically this will be a copyright notice.</td>
+<td class="td">The text you would like shown as the watermark.  Typically this will be a copyright notice.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>wm_font_path</strong></td>
 <td class="td">None</td>
 <td class="td">None</td>
-<td class="td">The server path to the True Type Font you would like to use. If you do not use this option, the native GD font will be used.</td>
+<td class="td">The server path to the True Type Font you would like to use.  If you do not use this option, the native GD font will be used.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>wm_font_size</strong></td>
 <td class="td">16</td>
 <td class="td">None</td>
-<td class="td">The size of the text. Note: If you are not using the True Type option above, the number is set using a range of 1 - 5. Otherwise, you can use any valid pixel size for the font you're using.</td>
+<td class="td">The size of the text.  Note: If you are not using the True Type option above, the number is set using a range of 1 - 5.  Otherwise, you can use any valid pixel size for the font you're using.</td>
 </tr>
 
 <tr>
 <td class="td"><strong>wm_font_color</strong></td>
 <td class="td">ffffff</td>
 <td class="td">None</td>
-<td class="td">The font color, specified in hex. Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td>
+<td class="td">The font color, specified in hex.  Note, you must use the full 6 character hex value (ie, 993300), rather than the three character abbreviated version (ie fff).</td>
 </tr>
 
 
diff --git a/user_guide/libraries/input.html b/user_guide/libraries/input.html
index 6070b6c..08b8ab0 100644
--- a/user_guide/libraries/input.html
+++ b/user_guide/libraries/input.html
@@ -70,20 +70,20 @@
 
 <h2>Security Filtering</h2>
 
-<p>The security filtering function is called automatically when a new <a href="../general/controllers.html">controller</a> is invoked. It does the following:</p>
+<p>The security filtering function is called automatically when a new <a href="../general/controllers.html">controller</a> is invoked.  It does the following:</p>
 
 <ul>
-<li>Destroys the global GET array. Since CodeIgniter does not utilize GET strings, there is no reason to allow it.</li>
+<li>Destroys the global GET array.  Since CodeIgniter does not utilize GET strings, there is no reason to allow it.</li>
 <li>Destroys all global variables in the event register_globals is turned on.</li>
 <li>Filters the POST/COOKIE array keys, permitting only alpha-numeric (and a few other) characters.</li>
-<li>Provides XSS (Cross-site Scripting Hacks) filtering. This can be enabled globally, or upon request.</li>
+<li>Provides XSS (Cross-site Scripting Hacks) filtering.  This can be enabled globally, or upon request.</li>
 <li>Standardizes newline characters to \n</li>
 </ul>
 
 
 <h2>XSS Filtering</h2>
 
-<p>The Input class has the ability to filter input automatically to prevent cross-site scripting attacks. If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your
+<p>The Input class has the ability to filter input automatically to prevent cross-site scripting attacks.  If you want the filter to run automatically every time it encounters POST or COOKIE data you can enable it by opening your
 <kbd>application/config/config.php</kbd> file and setting this:</p>
 
 <code>$config['global_xss_filtering'] = TRUE;</code>
@@ -93,9 +93,9 @@
 
 <h2>Using POST, COOKIE, or SERVER Data</h2>
 
-<p>CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items. The main advantage of using the provided
+<p>CodeIgniter comes with three helper functions that let you fetch POST, COOKIE or SERVER items.  The main advantage of using the provided
 functions rather than fetching an item directly ($_POST['something']) is that the functions will check to see if the item is set and
-return false (boolean) if not. This lets you conveniently use data without having to test whether an item exists first.
+return false (boolean) if not.  This lets you conveniently use data without having to test whether an item exists first.
 In other words, normally you might do something like this:</p>
 
 <code>
@@ -128,7 +128,7 @@
 
 <p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p>
 
-<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p>
+<p>The second optional parameter lets you run the data through the XSS filter.  It's enabled by setting the second parameter to boolean TRUE;</p>
 
 <code>$this->input->post('some_data', TRUE);</code>
 
@@ -179,7 +179,7 @@
 
 <h2>$this->input->set_cookie()</h2>
 
-<p>Sets a cookie containing the values you specify. There are two ways to pass information to this function so that a cookie can be set:
+<p>Sets a cookie containing the values you specify.  There are two ways to pass information to this function so that a cookie can be set:
 Array Method, and Discrete Parameters:</p>
 
 <h4>Array Method</h4>
@@ -203,10 +203,10 @@
 
 <p>Only the name and value are required. To delete a cookie set it with the expiration blank.</p>
 
-<p>The expiration is set in <strong>seconds</strong>, which will be added to the current time. Do not include the time, but rather only the
-number of seconds from <em>now</em> that you wish the cookie to be valid. If the expiration is set to
+<p>The expiration is set in <strong>seconds</strong>, which will be added to the current time.  Do not include the time, but rather only the
+number of seconds from <em>now</em> that you wish the cookie to be valid.  If the expiration is set to
 zero the cookie will only last as long as the browser is open.</p>
-<p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this: .your-domain.com</p>
+<p>For site-wide cookies regardless of how your site is requested, add your URL to the <strong>domain</strong> starting with a period, like this:  .your-domain.com</p>
 <p>The path is usually not needed since the function sets a root path.</p>
 <p>The prefix is only needed if you need to avoid name collisions with other identically named cookies for your server.</p>
 <p>The secure boolean is only needed if you want to make it a secure cookie by setting it to TRUE.</p>
@@ -219,25 +219,25 @@
 
 <h2>$this->input->cookie()</h2>
 
-<p>Lets you fetch a cookie. The first parameter will contain the name of the cookie you are looking for (including any prefixes):</p>
+<p>Lets you fetch a cookie.  The first parameter will contain the name of the cookie you are looking for (including any prefixes):</p>
 
 <code>cookie('some_cookie');</code>
 
 <p>The function returns FALSE (boolean) if the item you are attempting to retrieve does not exist.</p>
 
-<p>The second optional parameter lets you run the data through the XSS filter. It's enabled by setting the second parameter to boolean TRUE;</p>
+<p>The second optional parameter lets you run the data through the XSS filter.  It's enabled by setting the second parameter to boolean TRUE;</p>
 
 <p><code>cookie('some_cookie', TRUE);</code></p>
 
 
 <h2>$this->input->ip_address()</h2>
-<p>Returns the IP address for the current user. If the IP address is not valid, the function will return an IP of: 0.0.0.0</p>
+<p>Returns the IP address for the current user.  If the IP address is not valid, the function will return an IP of: 0.0.0.0</p>
 <code>echo $this->input->ip_address();</code>
 
 
 <h2>$this->input->valid_ip(<var>$ip</var>)</h2>
 
-<p>Takes an IP address as input and returns TRUE or FALSE (boolean) if it is valid or not. Note: The $this->input->ip_address() function above
+<p>Takes an IP address as input and returns TRUE or FALSE (boolean) if it is valid or not.  Note:  The $this->input->ip_address() function above
 validates the IP automatically.</p>
 
 <code>if ( ! $this-&gt;input-&gt;valid_ip($ip))<br />
@@ -256,7 +256,7 @@
 <p>See the <a href="user_agent.html">User Agent Class</a> for methods which extract information from the user agent string.</p>
 
 <h2>$this->input->request_headers()</h2>
-<p>Useful if running in a non-Apache environment where <a href="http://php.net/apache_request_headers">apache_request_headers()</a> will not be supported. Returns an array of headers.</p>
+<p>Useful if running in a non-Apache environment where <a href="http://php.net/apache_request_headers">apache_request_headers()</a> will not be supported.  Returns an array of headers.</p>
 
 <code>$headers = $this->input->request_headers();</code>
 
diff --git a/user_guide/libraries/javascript.html b/user_guide/libraries/javascript.html
index cd3adf1..4e26227 100644
--- a/user_guide/libraries/javascript.html
+++ b/user_guide/libraries/javascript.html
@@ -65,11 +65,11 @@
 
 <code>$this-&gt;load-&gt;library('javascript');</code>
 
-<p>The Javascript class also accepts parameters, <dfn>js_library_driver (string) default 'jquery'</dfn> and <dfn>autoload (bool) default TRUE</dfn>. You may override the defaults if you wish by sending an associative array:</p>
+<p>The Javascript class also accepts parameters, <dfn>js_library_driver (string) default 'jquery'</dfn> and <dfn>autoload (bool) default TRUE</dfn>.  You may override the defaults if you wish by sending an associative array:</p>
 
 <code>$this-&gt;load-&gt;library('javascript', array('js_library_driver' =&gt; 'scripto', 'autoload' =&gt; FALSE));</code>
 
-<p>Again, presently only 'jquery' is available. You may wish to set <dfn>autoload</dfn> to FALSE, though, if you do not want the jQuery library to automatically include a script tag for the main jQuery script file. This is useful if you are loading it from a location outside of CodeIgniter, or already have the script tag in your markup.</p>
+<p>Again, presently only 'jquery' is available.  You may wish to set <dfn>autoload</dfn> to FALSE, though, if you do not want the jQuery library to automatically include a script tag for the main jQuery script file.  This is useful if you are loading it from a location outside of CodeIgniter, or already have the script tag in your markup.</p>
 
 <p>Once loaded, the jQuery library object will be available using: <dfn>$this-&gt;javascript</dfn></p>
 <h2>Setup and Configuration</h2>
@@ -93,7 +93,7 @@
 
 <code>$this-&gt;load-&gt;library('jquery');</code>
 
-<p>You may send an optional parameter to determine whether or not a script tag for the main jQuery file will be automatically included when loading the library. It will be created by default. To prevent this, load the library as follows:</p>
+<p>You may send an optional parameter to determine whether or not a script tag for the main jQuery file will be automatically included when loading the library.  It will be created by default.  To prevent this, load the library as follows:</p>
 
 <code>$this-&gt;load-&gt;library('jquery', FALSE);</code>
 
@@ -115,7 +115,7 @@
 
 <h2>Effects</h2>
 
-<p>The query library supports a powerful <a href="http://docs.jquery.com/Effects">Effects</a> repertoire. Before an effect can be used, it must be loaded:</p>
+<p>The query library supports a powerful <a href="http://docs.jquery.com/Effects">Effects</a> repertoire.  Before an effect can be used, it must be loaded:</p>
 
 <p><code>$this->jquery->effect([optional path] plugin name);
 // for example
@@ -125,8 +125,8 @@
 <h3>hide() / show()</h3>
 
 <p>Each of this functions will affect the visibility of an item on your page. hide() will set an item invisible, show() will reveal it.</p>
-<p><code>$this-&gt;jquery-&gt;hide(target, optional speed, optional extra information);<br />
-	$this-&gt;jquery-&gt;show(target, optional speed, optional extra information);</code></p>
+<p><code>$this-&gt;jquery-&gt;hide(target,  optional speed, optional extra information);<br />
+	$this-&gt;jquery-&gt;show(target,  optional speed, optional extra information);</code></p>
 
 <ul>
 	<li>&quot;target&quot; will be any valid jQuery selector or selectors.</li>
@@ -162,8 +162,8 @@
 
 <h3>fadeIn() / fadeOut()</h3>
 
-<p><code>$this-&gt;jquery-&gt;fadeIn(target, optional speed, optional extra information);<br />
-	$this-&gt;jquery-&gt;fadeOut(target, optional speed, optional extra information);</code></p>
+<p><code>$this-&gt;jquery-&gt;fadeIn(target,  optional speed, optional extra information);<br />
+	$this-&gt;jquery-&gt;fadeOut(target,  optional speed, optional extra information);</code></p>
 <ul>
 	<li>&quot;target&quot; will be any valid jQuery selector or selectors.</li>
 	<li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li>
@@ -182,8 +182,8 @@
 <h3>fadeIn() / fadeOut()</h3>
 
 <p>These effects cause an element(s) to disappear or reappear over time.</p>
-<p><code>$this-&gt;jquery-&gt;fadeIn(target, optional speed, optional extra information);<br />
-	$this-&gt;jquery-&gt;fadeOut(target, optional speed, optional extra information);</code></p>
+<p><code>$this-&gt;jquery-&gt;fadeIn(target,  optional speed, optional extra information);<br />
+	$this-&gt;jquery-&gt;fadeOut(target,  optional speed, optional extra information);</code></p>
 <ul>
 	<li>&quot;target&quot; will be any valid jQuery selector or selectors.</li>
 	<li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li>
@@ -193,9 +193,9 @@
 <h3>slideUp() / slideDown() / slideToggle()</h3>
 
 <p>These effects cause an element(s) to slide.</p>
-<p><code>$this-&gt;jquery-&gt;slideUp(target, optional speed, optional extra information);<br />
-	$this-&gt;jquery-&gt;slideDown(target, optional speed, optional extra information);<br />
-$this-&gt;jquery-&gt;slideToggle(target, optional speed, optional extra information);</code></p>
+<p><code>$this-&gt;jquery-&gt;slideUp(target,  optional speed, optional extra information);<br />
+	$this-&gt;jquery-&gt;slideDown(target,  optional speed, optional extra information);<br />
+$this-&gt;jquery-&gt;slideToggle(target,  optional speed, optional extra information);</code></p>
 <ul>
 	<li>&quot;target&quot; will be any valid jQuery selector or selectors.</li>
 	<li>&quot;speed&quot; is optional, and is set to either slow, normal, fast, or alternatively a number of milliseconds.</li>
diff --git a/user_guide/libraries/language.html b/user_guide/libraries/language.html
index 1b253fa..75863c2 100644
--- a/user_guide/libraries/language.html
+++ b/user_guide/libraries/language.html
@@ -60,30 +60,30 @@
 
 <p>The Language Class provides functions to retrieve language files and lines of text for purposes of internationalization.</p>
 
-<p>In your CodeIgniter system folder you'll find one called <dfn>language</dfn> containing sets of language files. You can create
+<p>In your CodeIgniter system folder you'll find one called <dfn>language</dfn> containing sets of language files.  You can create
 your own language files as needed in order to display error and other messages in other languages.</p>
 
-<p>Language files are typically stored in your <dfn>system/language</dfn> directory. Alternately you can create a folder called <kbd>language</kbd> inside
-your <kbd>application</kbd> folder and store them there. CodeIgniter will look first in your <dfn>application/language</dfn>
-directory. If the directory does not exist or the specified language is not located there CI will instead look in your global
+<p>Language files are typically stored in your <dfn>system/language</dfn> directory.  Alternately you can create a folder called <kbd>language</kbd> inside
+your <kbd>application</kbd> folder and store them there.  CodeIgniter will look first in your <dfn>application/language</dfn>
+directory.  If the directory does not exist or the specified language is not located there CI will instead look in your global
 <dfn>system/language</dfn> folder.</p>
 
-<p class="important"><strong>Note:</strong>&nbsp; Each language should be stored in its own folder. For example, the English files are located at:
+<p class="important"><strong>Note:</strong>&nbsp; Each language should be stored in its own folder.  For example, the English files are located at:
 <dfn>system/language/english</dfn></p>
 
 
 
 <h2>Creating Language Files</h2>
 
-<p>Language files must be named with <kbd>_lang.php</kbd> as the file extension. For example, let's say you want to create a file
-containing error messages. You might name it: <kbd>error_lang.php</kbd></p>
+<p>Language files must be named with <kbd>_lang.php</kbd> as the file extension.  For example, let's say you want to create a file
+containing error messages.  You might name it:  <kbd>error_lang.php</kbd></p>
 
 <p>Within the file you will assign each line of text to an array called <var>$lang</var> with this prototype:</p>
 
 <code>$lang['language_key'] = "The actual message to be shown";</code>
 
 <p><strong>Note:</strong> It's a good practice to use a common prefix for all messages in a given file to avoid collisions with
-similarly named items in other files. For example, if you are creating error messages you might prefix them with <var>error_</var></p>
+similarly named items in other files.  For example, if you are creating error messages you might prefix them with <var>error_</var></p>
 
 <code>$lang['<var>error</var>_email_missing'] = "You must submit an email address";<br />
 $lang['<var>error</var>_url_missing'] = "You must submit a URL";<br />
@@ -92,12 +92,12 @@
 
 <h2>Loading A Language File</h2>
 
-<p>In order to fetch a line from a particular file you must load the file first. Loading a language file is done with the following code:</p>
+<p>In order to fetch a line from a particular file you must load the file first.  Loading a language file is done with the following code:</p>
 
 <code>$this->lang->load('<samp>filename</samp>', '<dfn>language</dfn>');</code>
 
 <p>Where <samp>filename</samp> is the name of the file you wish to load (without the file extension), and <dfn>language</dfn>
-is the language set containing it (ie, english). If the second parameter is missing, the default language set in your
+is the language set containing it (ie, english).  If the second parameter is missing, the default language set in your
 <kbd>application/config/config.php</kbd> file will be used.</p>
 
 
@@ -109,7 +109,7 @@
 
 <p>Where <samp>language_key</samp> is the array key corresponding to the line you wish to show.</p>
 
-<p>Note: This function simply returns the line. It does not echo it for you.</p>
+<p>Note: This function simply returns the line.  It does not echo it for you.</p>
 
 <h3>Using language lines as form labels</h3>
 
diff --git a/user_guide/libraries/loader.html b/user_guide/libraries/loader.html
index 50ec60c..1d93af5 100644
--- a/user_guide/libraries/loader.html
+++ b/user_guide/libraries/loader.html
@@ -58,7 +58,7 @@
 
 <h1>Loader Class</h1>
 
-<p>Loader, as the name suggests, is used to load elements. These elements can be libraries (classes) <a href="../general/views.html">View files</a>,
+<p>Loader, as the name suggests, is used to load elements.  These elements can be libraries (classes) <a href="../general/views.html">View files</a>,
 <a href="../general/helpers.html">Helpers</a>, <a href="../general/models.html">Models</a>, or your own files.</p>
 
 <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>
@@ -69,7 +69,7 @@
 <h2>$this->load->library('<var>class_name</var>', <samp>$config</samp>, <kbd>'object name'</kbd>)</h2>
 
 
-<p>This function is used to load core classes. Where <var>class_name</var> is the name of the class you want to load.
+<p>This function is used to load core classes.  Where <var>class_name</var> is the name of the class you want to load.
 Note: We use the terms "class" and "library" interchangeably.</p>
 
 <p>For example, if you would like to send email with CodeIgniter, the first step is to load the email class within your controller:</p>
@@ -96,7 +96,7 @@
 
 <h3>Setting options</h3>
 
-<p>The second (optional) parameter allows you to optionally pass configuration setting. You will typically pass these as an array:</p>
+<p>The second (optional) parameter allows you to optionally pass configuration setting.  You will typically pass these as an array:</p>
 
 <code>
 $config = array (<br />
@@ -113,7 +113,7 @@
 
 <h3>Assigning a Library to a different object name</h3>
 
-<p>If the third (optional) parameter is blank, the library will usually be assigned to an object with the same name as the library. For example, if the library is named <dfn>Session</dfn>, it
+<p>If the third (optional) parameter is blank, the library will usually be assigned to an object with the same name as the library.  For example, if the library is named <dfn>Session</dfn>, it
 will be assigned to a variable named <dfn>$this->session</dfn>.</p>
 
 <p>If you prefer to set your own class names you can pass its value to the third parameter:</p>
@@ -131,20 +131,20 @@
 
 <h2>$this->load->view('<var>file_name</var>', <samp>$data</samp>, <kbd>true/false</kbd>)</h2>
 
-<p>This function is used to load your View files. If you haven't read the <a href="../general/views.html">Views</a> section of the
+<p>This function is used to load your View files.  If you haven't read the <a href="../general/views.html">Views</a> section of the
 user guide it is recommended that you do since it shows you how this function is typically used.</p>
 
-<p>The first parameter is required. It is the name of the view file you would like to load. &nbsp;Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p>
+<p>The first parameter is required.  It is the name of the view file you would like to load. &nbsp;Note: The .php file extension does not need to be specified unless you use something other than <kbd>.php</kbd>.</p>
 
 <p>The second <strong>optional</strong> parameter can take
 an associative array or an object as input, which it runs through the PHP <a href="http://www.php.net/extract">extract</a> function to
-convert to variables that can be used in your view files. Again, read the <a href="../general/views.html">Views</a> page to learn
+convert to variables that can be used in your view files.  Again, read the <a href="../general/views.html">Views</a> page to learn
 how this might be useful.</p>
 
 <p>The third <strong>optional</strong> parameter lets you change the behavior of the function so that it returns data as a string
-rather than sending it to your browser. This can be useful if you want to process the data in some way. If you
-set the parameter to <kbd>true</kbd> (boolean) it will return data. The default behavior is <kbd>false</kbd>, which sends it
-to your browser. Remember to assign it to a variable if you want the data returned:</p>
+rather than sending it to your browser.  This can be useful if you want to process the data in some way.  If you
+set the parameter to <kbd>true</kbd> (boolean) it will return data.  The default behavior is <kbd>false</kbd>, which sends it
+to your browser.  Remember to assign it to a variable if you want the data returned:</p>
 
 <code>$string = $this->load->view('<var>myfile</var>', '', <kbd>true</kbd>);</code>
 
@@ -159,7 +159,7 @@
 <br />
 $this-&gt;<kbd>fubar</kbd>-&gt;function();</code>
 <h2>$this->load->database('<var>options</var>', <kbd>true/false</kbd>)</h2>
-<p>This function lets you load the database class. The two parameters are <strong>optional</strong>. Please see the
+<p>This function lets you load the database class.  The two parameters are <strong>optional</strong>.  Please see the
 <a href="../database/index.html">database</a> section for more info.</p>
 
 
@@ -168,9 +168,9 @@
 <h2>$this->load->vars(<samp>$array</samp>)</h2>
 
 <p>This function takes an associative array as input and generates variables using the PHP <a href="http://www.php.net/extract">extract</a> function.
-This function produces the same result as using the second parameter of the <dfn>$this->load->view()</dfn> function above. The reason you might
+This function produces the same result as using the second parameter of the <dfn>$this->load->view()</dfn> function above.  The reason you might
 want to use this function independently is if you would like to set some global variables in the constructor of your controller
-and have them become available in any view file loaded from any function. You can have multiple calls to this function. The data get cached
+and have them become available in any view file loaded from any function.  You can have multiple calls to this function.  The data get cached
 and merged into one array for conversion to variables.
 </p>
 
@@ -180,7 +180,7 @@
 
 
 <h2>$this->load->file('<var>filepath/filename</var>', <kbd>true/false</kbd>)</h2>
-<p>This is a generic file loading function. Supply the filepath and name in the first parameter and it will open and read the file.
+<p>This is a generic file loading function.  Supply the filepath and name in the first parameter and it will open and read the file.
 By default the data is sent to your browser, just like a View file, but if you set the second parameter to <kbd>true</kbd> (boolean)
 it will instead return the data as a string.</p>
 
@@ -194,7 +194,7 @@
 
 <h2>Application "Packages"</h2>
 
-<p>An application package allows for the easy distribution of complete sets of resources in a single directory, complete with its own libraries, models, helpers, config, and language files. It is recommended that these packages be placed in the <dfn>application/third_party</dfn> folder. Below is a sample map of an package directory</p>
+<p>An application package allows for the easy distribution of complete sets of resources in a single directory, complete with its own libraries, models, helpers, config, and language files.  It is recommended that these packages be placed in the <dfn>application/third_party</dfn> folder.  Below is a sample map of an package directory</p>
 
 
 <h2>Sample Package "Foo Bar" Directory Map</h2>
@@ -210,18 +210,18 @@
 models/<br />
 </code>
 
-<p>Whatever the purpose of the "Foo Bar" application package, it has its own config files, helpers, language files, libraries, and models. To use these resources in your controllers, you first need to tell the Loader that you are going to be loading resources from a package, by adding the package path.</p>
+<p>Whatever the purpose of the "Foo Bar" application package, it has its own config files, helpers, language files, libraries, and models.  To use these resources in your controllers, you first need to tell the Loader that you are going to be loading resources from a package, by adding the package path.</p>
 
 <h3>$this->load->add_package_path()</h3>
 
-<p>Adding a package path instructs the Loader class to prepend a given path for subsequent requests for resources. As an example, the "Foo Bar" application package above has a library named <dfn>Foo_bar.php</dfn>. In our controller, we'd do the following:</p>
+<p>Adding a package path instructs the Loader class to prepend a given path for subsequent requests for resources.  As an example, the "Foo Bar" application package above has a library named <dfn>Foo_bar.php</dfn>. In our controller, we'd do the following:</p>
 
 <code>$this->load->add_package_path(<var>APPPATH</var>.'third_party/<var>foo_bar</var>/');<br />
 $this->load->library('foo_bar');</code>
 
 <h3>$this->load->remove_package_path()</h3>
 
-<p>When your controller is finished using resources from an application package, and particularly if you have other application packages you want to work with, you may wish to remove the package path so the Loader no longer looks in that folder for resources. To remove the last path added, simply call the method with no parameters.</p>
+<p>When your controller is finished using resources from an application package, and particularly if you have other application packages you want to work with, you may wish to remove the package path so the Loader no longer looks in that folder for resources.  To remove the last path added, simply call the method with no parameters.</p>
 
 <h3>$this->load->remove_package_path()</h3>
 
@@ -231,8 +231,8 @@
 
 <h3>Package view files</h3>
 
-<p>By Default, package view files paths are set when <samp>add_package_path()</samp> is called. View paths are looped through, and once a match is encountered that view is loaded.</p>
-<p>In this instance, it is possible for view naming collisions within packages to occur, and possibly the incorrect package being loaded. To ensure against this, set an optional second parameter of <var>FALSE</var> when calling <samp>add_package_path()</samp>.</p>
+<p>By Default, package view files paths are set when <samp>add_package_path()</samp> is called.  View paths are looped through, and once a match is encountered that view is loaded.</p>
+<p>In this instance, it is possible for view naming collisions within packages to occur, and possibly the incorrect package being loaded.  To ensure against this, set an optional second parameter of <var>FALSE</var> when calling <samp>add_package_path()</samp>.</p>
 
 <code>
 $this->load->add_package_path(APPPATH.'my_app', TRUE);<br>
diff --git a/user_guide/libraries/output.html b/user_guide/libraries/output.html
index 8846e15..4d1f8d9 100644
--- a/user_guide/libraries/output.html
+++ b/user_guide/libraries/output.html
@@ -58,7 +58,7 @@
 
 <h1>Output Class</h1>
 
-<p>The Output class is a small class with one main function: To send the finalized web page to the requesting browser. It is
+<p>The Output class is a small class with one main function:  To send the finalized web page to the requesting browser.  It is
 also responsible for <a href="../general/caching.html">caching</a> your web pages, if you use that feature.</p>
 
 <p class="important"><strong>Note:</strong> This class is initialized automatically by the system so there is no need to do it manually.</p>
@@ -70,7 +70,7 @@
 
 <h2>$this->output->set_output();</h2>
 
-<p>Permits you to manually set the final output string. Usage example:</p>
+<p>Permits you to manually set the final output string.  Usage example:</p>
 
 <code>$this->output->set_output($data);</code>
 
@@ -95,7 +95,7 @@
 
 <h2>$this->output->get_output();</h2>
 
-<p>Permits you to manually retrieve any output that has been sent for storage in the output class. Usage example:</p>
+<p>Permits you to manually retrieve any output that has been sent for storage in the output class.  Usage example:</p>
 <code>$string = $this->output->get_output();</code>
 
 <p>Note that data will only be retrievable from this function if it has been previously sent to the output class by one of the
@@ -104,7 +104,7 @@
 
 <h2>$this->output->append_output();</h2>
 
-<p>Appends data onto the output string. Usage example:</p>
+<p>Appends data onto the output string.  Usage example:</p>
 
 <code>$this->output->append_output($data);</code>
 
@@ -112,7 +112,7 @@
 
 <h2>$this->output->set_header();</h2>
 
-<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display. Example:</p>
+<p>Permits you to manually set server headers, which the output class will send for you when outputting the final rendered display.  Example:</p>
 
 <code>
 $this->output->set_header("HTTP/1.0 200 OK");<br />
@@ -125,10 +125,10 @@
 
 <h2>$this->output->set_status_header(<var>code</var>, '<var>text</var>');</h2>
 
-<p>Permits you to manually set a server status header. Example:</p>
+<p>Permits you to manually set a server status header.  Example:</p>
 
 <code>$this->output->set_status_header('401');<br />
-// Sets the header as: Unauthorized</code>
+// Sets the header as:  Unauthorized</code>
 
 <p><a href="http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html">See here</a> for a full list of headers.</p>
 
@@ -147,14 +147,14 @@
 
 <h2>$this->output->set_profiler_sections();</h2>
 
-<p>Permits you to enable/disable specific sections of the Profiler when enabled. Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p>
+<p>Permits you to enable/disable specific sections of the Profiler when enabled.  Please refer to the <a href="../general/profiling.html">Profiler</a> documentation for further information.</p>
 
 <h2>$this->output->cache();</h2>
-<p>The CodeIgniter output library also controls caching. For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p>
+<p>The CodeIgniter output library also controls caching.  For more information, please see the <a href="../general/caching.html">caching documentation</a>.</p>
 
 <h2>Parsing Execution Variables</h2>
 
-	<p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default. To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller.
+	<p>CodeIgniter will parse the pseudo-variables <var>{elapsed_time}</var> and <var>{memory_usage}</var> in your output by default.  To disable this, set the <var>$parse_exec_vars</var> class property to <var>FALSE</var> in your controller.
 
 	<code>$this->output->parse_exec_vars = FALSE;</code>
 
diff --git a/user_guide/libraries/pagination.html b/user_guide/libraries/pagination.html
index a6b9287..3c366a6 100644
--- a/user_guide/libraries/pagination.html
+++ b/user_guide/libraries/pagination.html
@@ -72,26 +72,26 @@
 $this->load->library('pagination');<br /><br />
 $config['base_url'] = 'http://example.com/index.php/test/page/';<br />
 $config['total_rows'] = 200;<br />
-$config['per_page'] = 20;
+$config['per_page']  = 20;
 <br /><br />
 $this->pagination->initialize($config);
 
 <br /><br />
-echo $this->pagination->create_links();</code>
+echo  $this->pagination->create_links();</code>
 
 <h3>Notes:</h3>
 
-<p>The <var>$config</var> array contains your configuration variables. It is passed to the <dfn>$this->pagination->initialize</dfn> function as shown above. Although there are some twenty items you can configure, at
-minimum you need the three shown. Here is a description of what those items represent:</p>
+<p>The <var>$config</var> array contains your configuration variables.  It is passed to the <dfn>$this->pagination->initialize</dfn> function as shown above.  Although there are some twenty items you can configure, at
+minimum you need the three shown.  Here is a description of what those items represent:</p>
 
 <ul>
-	<li><strong>base_url</strong> This is the full URL to the controller class/function containing your pagination. In the example
-	above, it is pointing to a controller called "Test" and a function called "page". Keep in mind that you can
+	<li><strong>base_url</strong> This is the full URL to the controller class/function containing your pagination.  In the example
+	above, it is pointing to a controller called "Test" and a function called "page".  Keep in mind that you can
 	<a href="../general/routing.html">re-route your URI</a> if you need a different structure.</li>
 	<li><strong>total_rows</strong> This number represents the total rows in the result set you are creating pagination for.
 	Typically this number will be the total rows that your database query returned.
 	</li>
-	<li><strong>per_page</strong> The number of items you intend to show per page. In the above example, you would be showing 20 items per page.</li>
+	<li><strong>per_page</strong> The number of items you intend to show per page.  In the above example, you would be showing 20 items per page.</li>
 </ul>
 
 <p>The <var>create_links()</var> function returns an empty string when there is no pagination to show.</p>
@@ -100,7 +100,7 @@
 <h3>Setting preferences in a config file</h3>
 
 <p>If you prefer not to set preferences using the above method, you can instead put them into a config file.
-Simply create a new file called <var>pagination.php</var>, add the <var>$config</var>
+Simply create a new file called <var>pagination.php</var>,  add the <var>$config</var>
 array in that file. Then save the file in: <var>config/pagination.php</var> and it will be used automatically. You
 will NOT need to use the <dfn>$this->pagination->initialize</dfn> function if you save your preferences in a config file.</p>
 
@@ -122,9 +122,9 @@
 <h4>$config['page_query_string'] = TRUE</h4>
 <p>By default, the pagination library assume you are using <a href="../general/urls.html">URI Segments</a>, and constructs your links something like</p>
 <p><code>http://example.com/index.php/test/page/20</code></p>
-<p>If you have $config['enable_query_strings'] set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string'] set to TRUE, the pagination link will become.</p>
+<p>If you have $config['enable_query_strings']  set to TRUE your links will automatically be re-written using Query Strings. This option can also be explictly set. Using $config['page_query_string'] set to TRUE, the pagination link will become.</p>
 <p><code>http://example.com/index.php?c=test&amp;m=page&amp;per_page=20</code></p>
-<p>Note that &quot;per_page&quot; is the default query string passed, however can be configured using $config['query_string_segment'] = 'your_string'</p>
+<p>Note that &quot;per_page&quot; is the default query string  passed, however can be configured using $config['query_string_segment'] = 'your_string'</p>
 <h2>Adding Enclosing Markup</h2>
 
 <p>If you would like to surround the entire pagination with some markup you can do it with these two prefs:</p>
diff --git a/user_guide/libraries/parser.html b/user_guide/libraries/parser.html
index 4f04aaf..cb2f100 100644
--- a/user_guide/libraries/parser.html
+++ b/user_guide/libraries/parser.html
@@ -83,10 +83,10 @@
 PHP from your templates (view files).</p>
 
 <p class="important"><strong>Note:</strong> CodeIgniter does <strong>not</strong> require you to use this class
-since using pure PHP in your view pages lets them run a little faster. However, some developers prefer to use a template engine if
+since using pure PHP in your view pages lets them run a little faster.  However, some developers prefer to use a template engine if
 they work with designers who they feel would find some confusion working with PHP.</p>
 
-<p><strong>Also Note:</strong> The Template Parser Class is <strong>not</strong> a
+<p><strong>Also Note:</strong> The Template Parser Class is <strong>not</strong>  a
 full-blown template parsing solution. We've kept it very lean on purpose in order to maintain maximum performance.</p>
 
 
@@ -102,7 +102,7 @@
 
 <h2>$this->parser->parse()</h2>
 
-<p>This method accepts a template name and data array as input, and it generates a parsed version. Example:</p>
+<p>This method accepts a template name and data array as input, and it generates a parsed version.  Example:</p>
 
 <code>$this->load->library('parser');<br />
 <br />
@@ -114,11 +114,11 @@
 $this->parser->parse('blog_template', $data);</code>
 
 <p>The first parameter contains the name of the <a href="../general/views.html">view file</a> (in this example the file would be called blog_template.php),
-and the second parameter contains an associative array of data to be replaced in the template. In the above example, the
+and the second parameter contains an associative array of data to be replaced in the template.  In the above example, the
 template would contain two variables: {blog_title} and {blog_heading}</p>
 
-<p>There is no need to "echo" or do something with the data returned by <dfn>$this->parser->parse()</dfn>. It is automatically
-passed to the output class to be sent to the browser. However, if you do want the data returned instead of sent to the output class you can
+<p>There is no need to "echo" or do something with the data returned by <dfn>$this->parser->parse()</dfn>.  It is automatically
+passed to the output class to be sent to the browser.  However, if you do want the data returned instead of sent to the output class you can
 pass TRUE (boolean) to the third parameter:</p>
 
 <code>$string = $this->parser->parse('blog_template', $data, TRUE);</code>
@@ -130,8 +130,8 @@
 
 <h2>Variable Pairs</h2>
 
-<p>The above example code allows simple variables to be replaced. What if you would like an entire block of variables to be
-repeated, with each iteration containing new values? Consider the template example we showed at the top of the page:</p>
+<p>The above example code allows simple variables to be replaced.  What if you would like an entire block of variables to be
+repeated, with each iteration containing new values?  Consider the template example we showed at the top of the page:</p>
 
 <code>&lt;html&gt;<br />
 &lt;head&gt;<br />
diff --git a/user_guide/libraries/security.html b/user_guide/libraries/security.html
index 0cb1d0c..7351874 100644
--- a/user_guide/libraries/security.html
+++ b/user_guide/libraries/security.html
@@ -63,11 +63,11 @@
 <h2>XSS Filtering</h2>
 
 <p>CodeIgniter comes with a Cross Site Scripting Hack prevention filter which can either run automatically to filter
-all POST and COOKIE data that is encountered, or you can run it on a per item basis. By default it does <strong>not</strong>
+all POST and COOKIE data that is encountered, or you can run it on a per item basis.  By default it does <strong>not</strong>
 run globally since it requires a bit of processing overhead, and since you may not need it in all cases.</p>
 
 <p>The XSS filter looks for commonly used techniques to trigger Javascript or other types of code that attempt to hijack cookies
-or do other malicious things. If anything disallowed is encountered it is rendered safe by converting the data to character entities.</p>
+or do other malicious things.  If anything disallowed is encountered it is rendered safe by converting the data to character entities.</p>
 
 <p>
 Note: This function should only be used to deal with data upon submission. It's not something that should be used for general runtime processing since it requires a fair amount of processing overhead.</p>
@@ -88,7 +88,7 @@
 
 <p>Note: If you use the form validation class, it gives you the option of XSS filtering as well.</p>
 
-<p>An optional second parameter, <dfn>is_image</dfn>, allows this function to be used to test images for potential XSS attacks, useful for file upload security. When this second parameter is set to <dfn>TRUE</dfn>, instead of returning an altered string, the function returns TRUE if the image is safe, and FALSE if it contained potentially malicious information that a browser may attempt to execute.</p>
+<p>An optional second parameter, <dfn>is_image</dfn>, allows this function to be used to test images for potential XSS attacks, useful for file upload security.  When this second parameter is set to <dfn>TRUE</dfn>, instead of returning an altered string, the function returns TRUE if the image is safe, and FALSE if it contained potentially malicious information that a browser may attempt to execute.</p>
 
 <code>if ($this->security->xss_clean($file, TRUE) === FALSE)<br />
 {<br />
@@ -98,7 +98,7 @@
 
 <h2>$this->security->sanitize_filename()</h2>
 
-<p>When accepting filenames from user input, it is best to sanitize them to prevent directory traversal and other security related issues. To do so, use the <dfn>sanitize_filename()</dfn> method of the Security class. Here is an example:</p>
+<p>When accepting filenames from user input, it is best to sanitize them to prevent directory traversal and other security related issues.  To do so, use the <dfn>sanitize_filename()</dfn> method of the Security class.  Here is an example:</p>
 
 <code>$filename = $this->security->sanitize_filename($this->input->post('filename'));</code>
 
diff --git a/user_guide/libraries/sessions.html b/user_guide/libraries/sessions.html
index bb8f1fc..a6f3c60 100644
--- a/user_guide/libraries/sessions.html
+++ b/user_guide/libraries/sessions.html
@@ -61,7 +61,7 @@
 <p>The Session class permits you maintain a user's "state" and track their activity while they browse your site.
 The Session class stores session information for each user as serialized (and optionally encrypted) data in a cookie.
 It can also store the session data in a database table for added security, as this permits the session ID in the
-user's cookie to be matched against the stored session ID. By default only the cookie is saved. If you choose to
+user's cookie to be matched against the stored session ID. By default only the cookie is saved.  If you choose to
 use the database option you'll need to create the session table as indicated below.
 </p>
 
@@ -93,8 +93,8 @@
 If sessions data does <strong>not</strong> exist (or if it has expired) a new session will be created and saved in the cookie.
 If a session does exist, its information will be updated and the cookie will be updated. With each update, the session_id will be regenerated.</p>
 
-<p>It's important for you to understand that once initialized, the Session class runs automatically. There is nothing
-you need to do to cause the above behavior to happen. You can, as you'll see below, work with session data or
+<p>It's important for you to understand that once initialized, the Session class runs automatically.  There is nothing
+you need to do to cause the above behavior to happen.  You can, as you'll see below, work with session data or
 even add your own data to a user's session, but the process of reading, writing, and updating a session is automatic.</p>
 
 
@@ -106,7 +106,7 @@
 <li>The user's unique Session ID (this is a statistically random string with very strong entropy, hashed with MD5 for portability, and regenerated (by default) every five minutes)</li>
 <li>The user's IP Address</li>
 <li>The user's User Agent data (the first 50 characters of the browser data string)</li>
-<li>The "last activity" time stamp.</li>
+<li>The "last activity"  time stamp.</li>
 </ul>
 
 <p>The above data is stored in a cookie as a serialized array with this prototype:</p>
@@ -124,7 +124,7 @@
 can be <a href="encryption.html">found here</a>, although the Session class will take care of initializing
 and encrypting the data automatically.</p>
 
-<p>Note: Session cookies are only updated every five minutes by default to reduce processor load. If you repeatedly reload a page
+<p>Note: Session cookies are only updated every five minutes by default to reduce processor load.  If you repeatedly reload a page
 you'll notice that the "last activity" time only updates if five minutes or more has passed since the last time
 the cookie was written. This time is configurable by changing the $config['sess_time_to_update'] line in your system/config/config.php file.</p>
 
@@ -134,7 +134,7 @@
 
 <code>$this->session->userdata('<samp>item</samp>');</code>
 
-<p>Where <samp>item</samp> is the array index corresponding to the item you wish to fetch. For example, to fetch the session ID you
+<p>Where <samp>item</samp> is the array index corresponding to the item you wish to fetch.  For example, to fetch the session ID you
 will do this:</p>
 
 <code>$session_id = $this->session->userdata('<samp>session_id</samp>');</code>
@@ -145,7 +145,7 @@
 <h2>Adding Custom Session Data</h2>
 
 <p>A useful aspect of the session array is that you can add your own data to it and it will be stored in the user's cookie.
-Why would you want to do this? Here's one example:</p>
+Why would you want to do this?  Here's one example:</p>
 
 <p>Let's say a particular user logs into your site. Once authenticated,
 you could add their username and email address to the session cookie, making that data globally available to you without
@@ -155,7 +155,7 @@
 
 <code>$this->session->set_userdata(<samp>$array</samp>);</code>
 
-<p>Where <samp>$array</samp> is an associative array containing your new data. Here's an example:</p>
+<p>Where <samp>$array</samp> is an associative array containing your new data.  Here's an example:</p>
 
 
 <p><code>$newdata = array(<br />
@@ -167,7 +167,7 @@
 	$this->session->set_userdata(<samp>$newdata</samp>);</code></p>
 <p>If you want to add userdata one value at a time, set_userdata() also supports this syntax. </p>
 <p><code>$this-&gt;session-&gt;set_userdata('some_name', 'some_value');</code></p>
-<p class="important"><strong>Note:</strong> Cookies can only hold 4KB of data, so be careful not to exceed the capacity. The
+<p class="important"><strong>Note:</strong> Cookies can only hold 4KB of data, so be careful not to exceed the capacity.  The
 encryption process in particular produces a longer data string than the original so keep careful track of how much data you are storing.</p>
 
 <h2>Retrieving All Session Data</h2>
@@ -179,10 +179,10 @@
 <pre>
 Array
 (
-  [session_id] => 4a5a5dca22728fb0a84364eeb405b601
-  [ip_address] => 127.0.0.1
-  [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
-  [last_activity] => 1303142623
+    [session_id] => 4a5a5dca22728fb0a84364eeb405b601
+    [ip_address] => 127.0.0.1
+    [user_agent] => Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_7;
+    [last_activity] => 1303142623
 )
 </pre>
 
@@ -206,20 +206,20 @@
 <p><code>$this-&gt;session-&gt;keep_flashdata('item');</code></p>
 <h2>Saving Session Data to a Database</h2>
 <p>While the session data array stored in the user's cookie contains a Session ID,
-unless you store session data in a database there is no way to validate it. For some applications that require little or no
-security, session ID validation may not be needed, but if your application requires security, validation is mandatory. Otherwise, an old session
+unless you store session data in a database there is no way to validate it.  For some applications that require little or no
+security, session ID validation may not be needed, but if your application requires security, validation is mandatory.  Otherwise, an old session
 could be restored by a user modifying their cookies.</p>
 
 <p>When session data is available in a database, every time a valid session is found in the user's cookie, a database
-query is performed to match it. If the session ID does not match, the session is destroyed. Session IDs can never
+query is performed to match it.  If the session ID does not match, the session is destroyed.  Session IDs can never
 be updated, they can only be generated when a new session is created.</p>
 
 
-<p>In order to store sessions, you must first create a database table for this purpose. Here is the basic
+<p>In order to store sessions, you must first create a database table for this purpose.  Here is the basic
 prototype (for MySQL) required by the session class:</p>
 
 <textarea class="textarea" style="width:100%" cols="50" rows="10">
-CREATE TABLE IF NOT EXISTS `ci_sessions` (
+CREATE TABLE IF NOT EXISTS  `ci_sessions` (
 	session_id varchar(40) DEFAULT '0' NOT NULL,
 	ip_address varchar(16) DEFAULT '0' NOT NULL,
 	user_agent varchar(120) NOT NULL,
@@ -249,7 +249,7 @@
 <h2>Destroying a Session </h2>
 <p>To clear the current session: </p>
 <code>$this-&gt;session-&gt;sess_destroy();</code>
-<p class="important"><strong>Note:</strong> This function should be the last one called, and even flash variables will no longer be available. If you only want some items destroyed and not all, use <dfn>unset_userdata()</dfn>.</p>
+<p class="important"><strong>Note:</strong> This function should be the last one called, and even flash variables will no longer be available.  If you only want some items destroyed and not all, use <dfn>unset_userdata()</dfn>.</p>
 
 
 
@@ -292,7 +292,7 @@
 	<td class="td"><strong>sess_use_database</strong></td>
 	<td class="td">FALSE</td>
 	<td class="td">TRUE/FALSE (boolean)</td>
-	<td class="td">Whether to save the session data to a database. You must create the table before enabling this option.</td>
+	<td class="td">Whether to save the session data to a database.  You must create the table before enabling this option.</td>
 </tr>
 <tr>
 	<td class="td"><strong>sess_table_name</strong></td>
@@ -310,7 +310,7 @@
 	<td class="td"><strong>sess_match_ip</strong></td>
 	<td class="td">FALSE</td>
 	<td class="td">TRUE/FALSE (boolean)</td>
-	<td class="td">Whether to match the user's IP address when reading the session data. Note that some ISPs dynamically
+	<td class="td">Whether to match the user's IP address when reading the session data.  Note that some ISPs dynamically
 	changes the IP, so if you want a non-expiring session you will likely set this to FALSE.</td>
 </tr>
 <tr>
diff --git a/user_guide/libraries/table.html b/user_guide/libraries/table.html
index a08f950..eeb3b42 100644
--- a/user_guide/libraries/table.html
+++ b/user_guide/libraries/table.html
@@ -130,11 +130,11 @@
 
 <h2>Changing the Look of Your Table</h2>
 
-<p>The Table Class permits you to set a table template with which you can specify the design of your layout. Here is the template
+<p>The Table Class permits you to set a table template with which you can specify the design of your layout.  Here is the template
 prototype:</p>
 
 <code>
-$tmpl = array (<br />
+$tmpl =  array (<br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'table_open'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;table border="0" cellpadding="4" cellspacing="0">',<br />
 <br />
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_row_start'&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br />
@@ -159,14 +159,14 @@
 $this->table->set_template($tmpl);
 </code>
 
-<p class="important"><strong>Note:</strong>&nbsp; You'll notice there are two sets of "row" blocks in the template. These permit you to create alternating row colors or design elements that alternate with each
+<p class="important"><strong>Note:</strong>&nbsp; You'll notice there are two sets of "row" blocks in the template.  These permit you to create alternating row colors or design elements that alternate with each
 iteration of the row data.</p>
 
-<p>You are NOT required to submit a complete template. If you only need to change parts of the layout you can simply submit those elements.
+<p>You are NOT required to submit a complete template.  If you only need to change parts of the layout you can simply submit those elements.
 In this example, only the table opening tag is being changed:</p>
 
 <code>
-$tmpl = array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />
+$tmpl =  array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />
 
 <br />
 $this->table->set_template($tmpl);
@@ -176,7 +176,7 @@
 <h1>Function Reference</h1>
 
 <h2>$this->table->generate()</h2>
-<p>Returns a string containing the generated table. Accepts an optional parameter which can be an array or a database result object.</p>
+<p>Returns a string containing the generated table.  Accepts an optional parameter which can be an array or a database result object.</p>
 
 <h2>$this->table->set_caption()</h2>
 
@@ -186,19 +186,19 @@
 
 <h2>$this->table->set_heading()</h2>
 
-<p>Permits you to set the table heading. You can submit an array or discrete params:</p>
+<p>Permits you to set the table heading.  You can submit an array or discrete params:</p>
 
 <code>$this->table->set_heading('Name', 'Color', 'Size');</code>
 <code>$this->table->set_heading(array('Name', 'Color', 'Size'));</code>
 
 <h2>$this->table->add_row()</h2>
 
-<p>Permits you to add a row to your table. You can submit an array or discrete params:</p>
+<p>Permits you to add a row to your table.  You can submit an array or discrete params:</p>
 
 <code>$this->table->add_row('Blue', 'Red', 'Green');</code>
 <code>$this->table->add_row(array('Blue', 'Red', 'Green'));</code>
 
-<p>If you would like to set an individual cell's tag attributes, you can use an associative array for that cell. The associative key <dfn>'data'</dfn> defines the cell's data. Any other key =&gt; val pairs are added as <dfn>key='val'</dfn> attributes to the tag:</p>
+<p>If you would like to set an individual cell's tag attributes, you can use an associative array for that cell.  The associative key <dfn>'data'</dfn> defines the cell's data.  Any other key =&gt; val pairs are added as <dfn>key='val'</dfn> attributes to the tag:</p>
 
 <code>$cell = array('data' => 'Blue', 'class' => 'highlight', 'colspan' => 2);<br />
 $this->table->add_row($cell, 'Red', 'Green');<br />
@@ -211,8 +211,8 @@
 
 <p>This function takes a one-dimensional array as input and creates
 a multi-dimensional array with a depth equal to the number of
-columns desired. This allows a single array with many elements to be
-displayed in a table that has a fixed column count. Consider this example:</p>
+columns desired.  This allows a single array with many elements to  be
+displayed in a table that has a fixed column count.  Consider this example:</p>
 
 <code>
 $list = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve');<br />
@@ -241,7 +241,7 @@
 <p>Permits you to set your template. You can submit a full or partial template.</p>
 
 <code>
-$tmpl = array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />
+$tmpl =  array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />
 
 <br />
 $this->table->set_template($tmpl);
@@ -250,7 +250,7 @@
 
 <h2>$this->table->set_empty()</h2>
 
-<p>Let's you set a default value for use in any table cells that are empty. You might, for example, set a non-breaking space:</p>
+<p>Let's you set a default value for use in any table cells that are empty.  You might, for example, set a non-breaking space:</p>
 
 <code>
 $this->table->set_empty("&amp;nbsp;");
@@ -258,7 +258,7 @@
 
 <h2>$this->table->clear()</h2>
 
-<p>Lets you clear the table heading and row data. If you need to show multiple tables with different data you should
+<p>Lets you clear the table heading and row data.  If you need to show multiple tables with different data you should
 to call this function after each table has been generated to empty the previous table information. Example:</p>
 
 <code>
diff --git a/user_guide/libraries/trackback.html b/user_guide/libraries/trackback.html
index 4f5ca6c..7f89b4f 100644
--- a/user_guide/libraries/trackback.html
+++ b/user_guide/libraries/trackback.html
@@ -101,29 +101,29 @@
 <li><strong>ping_url</strong> - The URL of the site you are sending the Trackback to. You can send Trackbacks to multiple URLs by separating each URL with a comma.</li>
 <li><strong>url</strong> - The URL to YOUR site where the weblog entry can be seen.</li>
 <li><strong>title</strong> - The title of your weblog entry.</li>
-<li><strong>excerpt</strong> - The content of your weblog entry. Note: the Trackback class will automatically send only the first 500 characters of your entry. It will also strip all HTML.</li>
+<li><strong>excerpt</strong> - The content of your weblog entry. Note: the Trackback class will automatically send only the first 500 characters of your entry.  It will also strip all HTML.</li>
 <li><strong>blog_name</strong> - The name of your weblog.</li>
-<li><strong>charset</strong> - The character encoding your weblog is written in. If omitted, UTF-8 will be used.</li>
+<li><strong>charset</strong> - The character encoding your weblog is written in.  If omitted, UTF-8 will be used.</li>
 </ul>
 
-<p>The Trackback sending function returns TRUE/FALSE (boolean) on success or failure. If it fails, you can retrieve the error message using:</p>
+<p>The Trackback sending function returns TRUE/FALSE (boolean) on success or failure.  If it fails, you can retrieve the error message using:</p>
 
 <code>$this->trackback->display_errors();</code>
 
 
 <h2>Receiving Trackbacks</h2>
 
-<p>Before you can receive Trackbacks you must create a weblog. If you don't have a blog yet there's no point in continuing.</p>
+<p>Before you can receive Trackbacks you must create a weblog.  If you don't have a blog yet there's no point in continuing.</p>
 
 <p>Receiving Trackbacks is a little more complex than sending them, only because you will need a database table in which to store them,
-and you will need to validate the incoming trackback data. You are encouraged to implement a thorough validation process to
-guard against spam and duplicate data. You may also want to limit the number of Trackbacks you allow from a particular IP within
-a given span of time to further curtail spam. The process of receiving a Trackback is quite simple;
+and you will need to validate the incoming trackback data.  You are encouraged to implement a thorough validation process to
+guard against spam and duplicate data.  You may also want to limit the number of Trackbacks you allow from a particular IP within
+a given span of time to further curtail spam.  The process of receiving a Trackback is quite simple;
 the validation is what takes most of the effort.</p>
 
 <h2>Your Ping URL</h2>
 
-<p>In order to accept Trackbacks you must display a Trackback URL next to each one of your weblog entries. This will be the URL
+<p>In order to accept Trackbacks you must display a Trackback URL next to each one of your weblog entries.  This will be the URL
 that people will use to send you Trackbacks (we will refer to this as your "Ping URL").</p>
 
 <p>Your Ping URL must point to a controller function where your Trackback receiving code is located, and the URL
@@ -140,7 +140,7 @@
 
 <h2>Creating a Trackback Table</h2>
 
-<p>Before you can receive Trackbacks you must create a table in which to store them. Here is a basic prototype for such a table:</p>
+<p>Before you can receive Trackbacks you must create a table in which to store them.  Here is a basic prototype for such a table:</p>
 
 <textarea class="textarea" style="width:100%" cols="50" rows="13">
 CREATE TABLE trackbacks (
@@ -162,7 +162,7 @@
 
 <h2>Processing a Trackback</h2>
 
-<p>Here is an example showing how you will receive and process a Trackback. The following
+<p>Here is an example showing how you will receive and process a Trackback.  The following
 code is intended for use within the controller function where you expect to receive Trackbacks.</p>
 
 <code>$this->load->library('trackback');<br />
@@ -196,7 +196,7 @@
 
 <h4>Notes:</h4>
 
-<p>The entry ID number is expected in the third segment of your URL. This is based on the URI example we gave earlier:</p>
+<p>The entry ID number is expected in the third segment of your URL.  This is based on the URI example we gave earlier:</p>
 
 <code>http://example.com/index.php/trackback/receive/<samp>entry_id</samp></code>
 
@@ -204,12 +204,12 @@
 
 <code>$this->uri->segment(3);</code>
 
-<p>In our Trackback receiving code above, if the third segment is missing, we will issue an error. Without a valid entry ID, there's no
+<p>In our Trackback receiving code above, if the third segment is missing, we will issue an error.  Without a valid entry ID, there's no
 reason to continue.</p>
 
 <p>The <dfn>$this->trackback->receive()</dfn> function is simply a validation function that looks at the incoming data
 and makes sure it contains the four pieces of data that are required (url, title, excerpt, blog_name).
-It returns TRUE on success and FALSE on failure. If it fails you will issue an error message.</p>
+It returns TRUE on success and FALSE on failure.  If it fails you will issue an error message.</p>
 
 <p>The incoming Trackback data can be retrieved using this function:</p>
 
diff --git a/user_guide/libraries/typography.html b/user_guide/libraries/typography.html
index 333f77a..895e76f 100644
--- a/user_guide/libraries/typography.html
+++ b/user_guide/libraries/typography.html
@@ -71,7 +71,7 @@
 
 <h2>auto_typography()</h2>
 
-<p>Formats text so that it is semantically and typographically correct HTML. Takes a string as input and returns it with
+<p>Formats text so that it is semantically and typographically correct HTML.  Takes a string as input and returns it with
 the following formatting:</p>
 
 <ul>
@@ -133,7 +133,7 @@
 <h2>protect_braced_quotes</h2>
 
 <p>When using the Typography library in conjunction with the Template Parser library it can often be desirable to protect single
-	and double quotes within curly braces. To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.</p>
+	and double quotes within curly braces.  To enable this, set the <kbd>protect_braced_quotes</kbd> class property to <samp>TRUE</samp>.</p>
 
 <p>Usage example:</p>
 
diff --git a/user_guide/libraries/unit_testing.html b/user_guide/libraries/unit_testing.html
index a430512..5e0c4c1 100644
--- a/user_guide/libraries/unit_testing.html
+++ b/user_guide/libraries/unit_testing.html
@@ -92,7 +92,7 @@
 <br />
 $this->unit->run($test, $expected_result, $test_name);</code>
 
-<p>The expected result you supply can either be a literal match, or a data type match. Here's an example of a literal:</p>
+<p>The expected result you supply can either be a literal match, or a data type match.  Here's an example of a literal:</p>
 
 <code>$this->unit->run('Foo', 'Foo');</code>
 
@@ -100,8 +100,8 @@
 
 <code>$this->unit->run('Foo', 'is_string');</code>
 
-<p>Notice the use of "is_string" in the second parameter? This tells the function to evaluate whether your test is producing a string
-as the result. Here is a list of allowed comparison types:</p>
+<p>Notice the use of "is_string" in the second parameter?  This tells the function to evaluate whether your test is producing a string
+as the result.  Here is a list of allowed comparison types:</p>
 
 <ul>
 <li>is_object</li>
@@ -129,18 +129,18 @@
 
 <code>echo $this->unit->report();</code>
 
-<p>The report will be formatted in an HTML table for viewing. If you prefer the raw data you can retrieve an array using:</p>
+<p>The report will be formatted in an HTML table for viewing.  If you prefer the raw data you can retrieve an array using:</p>
 
 <code>echo $this->unit->result();</code>
 
 
 <h2>Strict Mode</h2>
 
-<p>By default the unit test class evaluates literal matches loosely. Consider this example:</p>
+<p>By default the unit test class evaluates literal matches loosely.  Consider this example:</p>
 
 <code>$this->unit->run(1, TRUE);</code>
 
-<p>The test is evaluating an integer, but the expected result is a boolean. PHP, however, due to it's loose data-typing
+<p>The test is evaluating an integer, but the expected result is a boolean.  PHP, however, due to it's loose data-typing
 will evaluate the above code as TRUE using a normal equality test:</p>
 
 <code>if (1 == TRUE) echo 'This evaluates as true';</code>
@@ -184,8 +184,8 @@
 
 <h3>Creating a Template</h3>
 
-<p>If you would like your test results formatted differently then the default you can set your own template. Here is an
-example of a simple template. Note the required pseudo-variables:</p>
+<p>If you would like your test results formatted differently then the default you can set your own template.  Here is an
+example of a simple template.  Note the required pseudo-variables:</p>
 
 <code>
 $str = '<br />
diff --git a/user_guide/libraries/uri.html b/user_guide/libraries/uri.html
index 884f4b9..e4e0f9d 100644
--- a/user_guide/libraries/uri.html
+++ b/user_guide/libraries/uri.html
@@ -106,7 +106,7 @@
 <h2>$this->uri->slash_segment(<var>n</var>)</h2>
 
 <p>This function is almost identical to <dfn>$this->uri->segment()</dfn>, except it adds a trailing and/or leading slash based on the second
-parameter. If the parameter is not used, a trailing slash added. Examples:</p>
+parameter.  If the parameter is not used, a trailing slash added.  Examples:</p>
 
 <code>$this->uri->slash_segment(<var>3</var>);<br />
 $this->uri->slash_segment(<var>3</var>, 'leading');<br />
@@ -130,7 +130,7 @@
 
 <h2>$this->uri->uri_to_assoc(<var>n</var>)</h2>
 
-<p>This function lets you turn URI segments into and associative array of key/value pairs. Consider this URI:</p>
+<p>This function lets you turn URI segments into and associative array of key/value pairs.  Consider this URI:</p>
 
 <code>index.php/user/search/name/joe/location/UK/gender/male</code>
 
@@ -143,7 +143,7 @@
 &nbsp;&nbsp;&nbsp;&nbsp;'gender'	=> 'male'<br />
 )</code>
 
-<p>The first parameter of the function lets you set an offset. By default it is set to <kbd>3</kbd> since your
+<p>The first parameter of the function lets you set an offset.  By default it is set to <kbd>3</kbd> since your
 URI will normally contain a controller/function in the first and second segments. Example:</p>
 
 <code>
@@ -173,19 +173,19 @@
 
 <h2>$this->uri->assoc_to_uri()</h2>
 
-<p>Takes an associative array as input and generates a URI string from it. The array keys will be included in the string. Example:</p>
+<p>Takes an associative array as input and generates a URI string from it.  The array keys will be included in the string.  Example:</p>
 
 <code>$array = array('product' => 'shoes', 'size' => 'large', 'color' => 'red');<br />
 <br />
 $str = $this->uri->assoc_to_uri($array);<br />
 <br />
-// Produces: product/shoes/size/large/color/red
+// Produces:  product/shoes/size/large/color/red
 </code>
 
 
 <h2>$this->uri->uri_string()</h2>
 
-<p>Returns a string with the complete URI. For example, if this is your full URL:</p>
+<p>Returns a string with the complete URI.  For example, if this is your full URL:</p>
 
 <code>http://example.com/index.php/news/local/345</code>
 
@@ -215,7 +215,7 @@
 
 <h2>$this->uri->segment_array()</h2>
 
-<p>Returns an array containing the URI segments. For example:</p>
+<p>Returns an array containing the URI segments.  For example:</p>
 
 <code>
 $segs = $this->uri->segment_array();<br />
diff --git a/user_guide/libraries/user_agent.html b/user_guide/libraries/user_agent.html
index 6b23102..24e8071 100644
--- a/user_guide/libraries/user_agent.html
+++ b/user_guide/libraries/user_agent.html
@@ -70,13 +70,13 @@
 
 <h2>User Agent Definitions</h2>
 
-<p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>. You may add items to the
+<p>The user agent name definitions are located in a config file located at: <dfn>application/config/user_agents.php</dfn>.  You may add items to the
 various user agent arrays if needed.</p>
 
 <h2>Example</h2>
 
 <p>When the User Agent class is initialized it will attempt to determine whether the user agent browsing your site is
-a web browser, a mobile device, or a robot. It will also gather the platform information if it is available.</p>
+a web browser, a mobile device, or a robot.  It will also gather the platform information if it is available.</p>
 
 
 <code>
@@ -84,7 +84,7 @@
 <br />
 if ($this->agent->is_browser())<br />
 {<br />
-&nbsp;&nbsp;&nbsp;&nbsp;$agent = $this->agent->browser().' '.$this->agent->version();<br />
+&nbsp;&nbsp;&nbsp;&nbsp;$agent  = $this->agent->browser().' '.$this->agent->version();<br />
 }<br />
 elseif ($this->agent->is_robot())<br />
 {<br />
@@ -143,7 +143,7 @@
 <p>Returns TRUE/FALSE (boolean) if the user agent is a known robot.</p>
 
 <p class="important"><strong>Note:</strong>&nbsp; The user agent library only contains the most common robot
-definitions. It is not a complete list of bots. There are hundreds of them so searching for each one would not be
+definitions.  It is not a complete list of bots. There are hundreds of them so searching for each one would not be
 very efficient. If you find that some bots that commonly visit your site are missing from the list you can add them to your
 <dfn>application/config/user_agents.php</dfn> file.</p>
 
@@ -176,7 +176,7 @@
 
 
 <h2>$this->agent->agent_string()</h2>
-<p>Returns a string containing the full user agent string. Typically it will be something like this:</p>
+<p>Returns a string containing the full user agent string.  Typically it will be something like this:</p>
 
 <code>Mozilla/5.0 (Macintosh; U; Intel Mac OS X; en-US; rv:1.8.0.4) Gecko/20060613 Camino/1.0.2</code>
 
diff --git a/user_guide/libraries/xmlrpc.html b/user_guide/libraries/xmlrpc.html
index f7aa6fe..5ba8513 100644
--- a/user_guide/libraries/xmlrpc.html
+++ b/user_guide/libraries/xmlrpc.html
@@ -67,11 +67,11 @@
 
 <p>Quite simply it is a way for two computers to communicate over the internet using XML.
 One computer, which we will call the <dfn>client</dfn>, sends an XML-RPC <strong>request</strong> to
-another computer, which we will call the <dfn>server</dfn>. Once the server receives and processes the request it
+another computer, which we will call the <dfn>server</dfn>.  Once the server receives and processes the request it
 will send back a <strong>response</strong> to the client.</p>
 
 <p>For example, using the MetaWeblog API, an XML-RPC Client (usually a desktop publishing tool) will
-send a request to an XML-RPC Server running on your site. This request might be a new weblog entry
+send a request to an XML-RPC Server running on your site.  This request might be a new weblog entry
 being sent for publication, or it could be a request for an existing entry for editing.
 
 When the XML-RPC Server receives this request it will examine it to determine which class/method should be called to process the request.
@@ -127,16 +127,16 @@
 
 <h3>Explanation</h3>
 
-<p>The above code initializes the XML-RPC class, sets the server URL and method to be called (weblogUpdates.ping). The
+<p>The above code initializes the XML-RPC class, sets the server URL and method to be called (weblogUpdates.ping).  The
 request (in this case, the title and URL of your site) is placed into an array for transportation, and
 compiled using the request() function.
-Lastly, the full request is sent. If the <dfn>send_request()</dfn> method returns false we will display the error message
+Lastly, the full request is sent.  If the <dfn>send_request()</dfn> method returns false we will display the error message
 sent back from the XML-RPC Server.</p>
 
 <h2>Anatomy of a Request</h2>
 
-<p>An XML-RPC <dfn>request</dfn> is simply the data you are sending to the XML-RPC server. Each piece of data in a request
-is referred to as a <dfn>request parameter</dfn>. The above example has two parameters:
+<p>An XML-RPC <dfn>request</dfn> is simply the data you are sending to the XML-RPC server.  Each piece of data in a request
+is referred to as a <dfn>request parameter</dfn>.  The above example has two parameters:
 The URL and title of your site. When the XML-RPC server receives your request, it will look for parameters it requires.</p>
 
 <p>Request parameters must be placed into an array for transportation, and each parameter can be one
@@ -161,7 +161,7 @@
 <br />
 $this->xmlrpc->request($request);</code>
 
-The <a href="#datatypes">Data Types</a> section below has a full list of data types.
+The  <a href="#datatypes">Data Types</a>  section below has a full list of data types.
 
 
 
@@ -198,7 +198,7 @@
 If the request is for the <var>update_post</var> method, your
 server will load the <dfn>My_blog</dfn> class and call the <dfn>update_entry</dfn> function.</p>
 
-<p>The function names in the above example are arbitrary. You'll decide what they should be called on your server,
+<p>The function names in the above example are arbitrary.  You'll decide what they should be called on your server,
 or if you are using standardized APIs, like the Blogger or MetaWeblog API, you'll use their function names.</p>
 
 <p>There are two additional configuration keys you may make use of when initializing the server class: <var>debug</var> can be set to TRUE in order to enable debugging, and <var>xss_clean</var> may be set to FALSE to prevent sending data through the Security library's xss_clean function.
@@ -221,12 +221,12 @@
 </code>
 
 <p>The <var>$request</var> variable is an object compiled by the Server, which contains the data sent by the XML-RPC Client.
-Using this object you will have access to the <em>request parameters</em> enabling you to process the request. When
+Using this object you will have access to the <em>request parameters</em> enabling you to process the request.  When
 you are done you will send a <dfn>Response</dfn> back to the Client.</p>
 
-<p>Below is a real-world example, using the Blogger API. One of the methods in the Blogger API is <dfn>getUserInfo()</dfn>.
+<p>Below is a real-world example, using the Blogger API.  One of the methods in the Blogger API is <dfn>getUserInfo()</dfn>.
 Using this method, an XML-RPC Client can send the Server a username and password, in return the Server sends
-back information about that particular user (nickname, user ID, email address, etc.). Here is how the processing
+back information about that particular user (nickname, user ID, email address, etc.).  Here is how the processing
 function might look:</p>
 
 
@@ -272,14 +272,14 @@
 
 <h2>Formatting a Response</h2>
 
-<p>Similar to <em>Requests</em>, <em>Responses</em> must be formatted as an array. However, unlike requests, a response is an array
-<strong>that contains a single item</strong>. This item can be an array with several additional arrays, but there
-can be only one primary array index. In other words, the basic prototype is this:</p>
+<p>Similar to <em>Requests</em>, <em>Responses</em> must be formatted as an array.  However, unlike requests, a response is an array
+<strong>that contains a single item</strong>.  This item can be an array with several additional arrays, but there
+can be only one primary array index.  In other words, the basic prototype is this:</p>
 
-<code>$response = array('Response data', 'array');</code>
+<code>$response = array('Response data',  'array');</code>
 
 <p>Responses, however, usually contain multiple pieces of information. In order to accomplish this we must put the response into its own
-array so that the primary array continues to contain a single piece of data. Here's an example showing how this might be accomplished:</p>
+array so that the primary array continues to contain a single piece of data.  Here's an example showing how this might be accomplished:</p>
 
 <code>
 $response = array (<br />
@@ -293,9 +293,9 @@
 &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);
 </code>
 
-<p class="important">Notice that the above array is formatted as a <dfn>struct</dfn>. This is the most common data type for responses.</p>
+<p class="important">Notice that the above array is formatted as a <dfn>struct</dfn>.  This is the most common data type for responses.</p>
 
-<p>As with Requests, a response can be one of the seven data types listed in the <a href="#datatypes">Data Types</a> section.</p>
+<p>As with Requests, a response can be one of the seven data types listed in the  <a href="#datatypes">Data Types</a>  section.</p>
 
 
 <h2>Sending an Error Response</h2>
@@ -314,7 +314,7 @@
 <h2>Creating Your Own Client and Server</h2>
 
 <p>To help you understand everything we've covered thus far, let's create a couple controllers that act as
-XML-RPC Client and Server. You'll use the Client to send a request to the Server and receive a response.</p>
+XML-RPC Client and Server.  You'll use the Client to send a request to the Server and receive a response.</p>
 
 <h3>The Client</h3>
 
@@ -352,7 +352,7 @@
 }
 ?></textarea>
 
-<p>Note: In the above code we are using a "url helper". You can find more information in the <a href="../general/helpers.html">Helpers Functions</a> page.</p>
+<p>Note: In the above code we are using a "url helper".  You can find more information in the <a href="../general/helpers.html">Helpers Functions</a> page.</p>
 
 <h3>The Server</h3>
 
@@ -381,7 +381,7 @@
 
 		$response = array(
 							array(
-									'you_said' => $parameters['0'],
+									'you_said'  => $parameters['0'],
 									'i_respond' => 'Not bad at all.'),
 							'struct');
 
@@ -452,7 +452,7 @@
 $this->xmlrpc->request($request);</code>
 
 <h2>$this->xmlrpc->send_request()</h2>
-<p>The request sending function. Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.</p>
+<p>The request sending function.  Returns boolean TRUE or FALSE based on success for failure, enabling it to be used conditionally.</p>
 
 <h2>$this->xmlrpc->set_debug(TRUE);</h2>
 <p>Enables debugging, which will display a variety of information and error data helpful during development.</p>
@@ -463,7 +463,7 @@
 <code>echo $this->xmlrpc->display_error();</code>
 
 <h2>$this->xmlrpc->display_response()</h2>
-<p>Returns the response from the remote server once request is received. The response will typically be an associative array.</p>
+<p>Returns the response from the remote server once request is received.  The response will typically be an associative array.</p>
 <code>$this->xmlrpc->display_response();</code>
 
 <h2>$this->xmlrpc->send_error_message()</h2>
diff --git a/user_guide/libraries/zip.html b/user_guide/libraries/zip.html
index 2fc5fd8..0311266 100644
--- a/user_guide/libraries/zip.html
+++ b/user_guide/libraries/zip.html
@@ -81,7 +81,7 @@
 // Write the zip file to a folder on your server. Name it "my_backup.zip"<br />
 $this->zip->archive('/path/to/directory/my_backup.zip');
 <br /><br />
- // Download the file to your desktop. Name it "my_backup.zip"<br />
+ // Download the file to your desktop.  Name it "my_backup.zip"<br />
 $this->zip->download('my_backup.zip');
 </code>
 
@@ -100,7 +100,7 @@
 </code>
 
 <p>You are allowed multiple calls to this function in order to
-add several files to your archive. Example:</p>
+add several files to your archive.  Example:</p>
 
 <code>
 $name = 'mydata1.txt';<br />
@@ -139,8 +139,8 @@
 
 <h2>$this->zip->add_dir()</h2>
 
-<p>Permits you to add a directory. Usually this function is unnecessary since you can place your data into folders when
-using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so. Example:</p>
+<p>Permits you to add a directory.  Usually this function is unnecessary since you can place your data into folders when
+using <dfn>$this->zip->add_data()</dfn>, but if you would like to create an empty folder you can do so.  Example:</p>
 
 <code>$this->zip->add_dir('myfolder'); // Creates a folder called "myfolder"</code>
 
@@ -148,49 +148,49 @@
 
 <h2>$this->zip->read_file()</h2>
 
-<p>Permits you to compress a file that already exists somewhere on your server. Supply a file path and the zip class will
+<p>Permits you to compress a file that already exists somewhere on your server.  Supply a file path and the zip class will
 read it and add it to the archive:</p>
 
 <code>
 $path = '/path/to/photo.jpg';<br /><br />
 $this->zip->read_file($path);
 <br /><br />
- // Download the file to your desktop. Name it "my_backup.zip"<br />
+ // Download the file to your desktop.  Name it "my_backup.zip"<br />
 $this->zip->download('my_backup.zip');
 </code>
 
 <p>If you would like the Zip archive to maintain the directory structure of the file in it, pass <kbd>TRUE</kbd> (boolean) in the
-second parameter. Example:</p>
+second parameter.  Example:</p>
 
 
 <code>
 $path = '/path/to/photo.jpg';<br /><br />
 $this->zip->read_file($path, <kbd>TRUE</kbd>);
 <br /><br />
- // Download the file to your desktop. Name it "my_backup.zip"<br />
+ // Download the file to your desktop.  Name it "my_backup.zip"<br />
 $this->zip->download('my_backup.zip');
 </code>
 
-<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders: <kbd>path/to/</kbd></p>
+<p>In the above example, <dfn>photo.jpg</dfn> will be placed inside two folders:  <kbd>path/to/</kbd></p>
 
 
 
 <h2>$this->zip->read_dir()</h2>
 
-<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server. Supply a file path to the
-directory and the zip class will recursively read it and recreate it as a Zip archive. All files contained within the
-supplied path will be encoded, as will any sub-folders contained within it. Example:</p>
+<p>Permits you to compress a folder (and its contents) that already exists somewhere on your server.  Supply a file path to the
+directory and the zip class will recursively read it and recreate it as a Zip archive.  All files contained within the
+supplied path will be encoded, as will any sub-folders contained within it.  Example:</p>
 
 <code>
 $path = '/path/to/your/directory/';<br /><br />
 $this->zip->read_dir($path);
 <br /><br />
- // Download the file to your desktop. Name it "my_backup.zip"<br />
+ // Download the file to your desktop.  Name it "my_backup.zip"<br />
 $this->zip->download('my_backup.zip');
 </code>
 
 <p>By default the Zip archive will place all directories listed in the first parameter inside the zip. If you want the tree preceding the target folder to be ignored
-you can pass <kbd>FALSE</kbd> (boolean) in the second parameter. Example:</p>
+you can pass <kbd>FALSE</kbd> (boolean) in the second parameter.  Example:</p>
 
 <code>
 $path = '/path/to/your/directory/';<br /><br />
@@ -204,7 +204,7 @@
 
 <h2>$this->zip->archive()</h2>
 
-<p>Writes the Zip-encoded file to a directory on your server. Submit a valid server path ending in the file name. Make sure the
+<p>Writes the Zip-encoded file to a directory on your server.  Submit a valid server path ending in the file name.  Make sure the
 directory is writable (666 or 777 is usually OK). Example:</p>
 
 <code>$this->zip->archive('/path/to/folder/myarchive.zip'); // Creates a file named myarchive.zip</code>
@@ -223,7 +223,7 @@
 
 <h2>$this->zip->get_zip()</h2>
 
-<p>Returns the Zip-compressed file data. Generally you will not need this function unless you want to do something unique with the data.
+<p>Returns the Zip-compressed file data.  Generally you will not need this function unless you want to do something unique with the data.
 Example:</p>
 
 <code>
diff --git a/user_guide/license.html b/user_guide/license.html
index ecc5b50..8f53851 100644
--- a/user_guide/license.html
+++ b/user_guide/license.html
@@ -63,7 +63,7 @@
 <p>Copyright (c) 2008 - 2011, EllisLab, Inc.<br />
 All rights reserved.</p>
 
-<p>This license is a legal agreement between you and EllisLab Inc. for the use of CodeIgniter Software (the "Software"). By obtaining the Software you agree to comply with the terms and conditions of this license.</p>
+<p>This license is a legal agreement between you and EllisLab Inc. for the use of CodeIgniter Software (the "Software").  By obtaining the Software you agree to comply with the terms and conditions of this license.</p>
 
 <h2>Permitted Use</h2>
 <p>You are permitted to use, copy, modify, and distribute the Software and its documentation, with or without modification, for any purpose, provided that the following conditions are met:</p>
diff --git a/user_guide/nav/hacks.txt b/user_guide/nav/hacks.txt
index 183481b..8c17f00 100644
--- a/user_guide/nav/hacks.txt
+++ b/user_guide/nav/hacks.txt
@@ -1,6 +1,6 @@
 I did the following hack in moo.fx.js:
 
-At line 79 in the toggle: function() function, I added:
+At line 79 in the toggle: function()  function, I added:
 
 document.getElementById('nav').style.display = 'block';
 
diff --git a/user_guide/nav/moo.fx.js b/user_guide/nav/moo.fx.js
index b21ee20..256371d 100755
--- a/user_guide/nav/moo.fx.js
+++ b/user_guide/nav/moo.fx.js
@@ -25,8 +25,8 @@
 	},
 
 	step: function() {
-		var time = (new Date).getTime();
-		var Tpos  = (time - this.startTime) / (this.duration);
+		var time  = (new Date).getTime();
+		var Tpos   = (time - this.startTime) / (this.duration);
 		if (time >= this.duration+this.startTime) {
 			this.now = this.to;
 			clearInterval (this.timer);
diff --git a/user_guide/nav/prototype.lite.js b/user_guide/nav/prototype.lite.js
index 857faae..e6c3622 100755
--- a/user_guide/nav/prototype.lite.js
+++ b/user_guide/nav/prototype.lite.js
@@ -1,9 +1,9 @@
-/* Prototype JavaScript framework
- * (c) 2005 Sam Stephenson <sam@conio.net>
+/*  Prototype JavaScript framework
+ *  (c) 2005 Sam Stephenson <sam@conio.net>
  *
- * Prototype is freely distributable under the terms of an MIT-style license.
+ *  Prototype is freely distributable under the terms of an MIT-style license.
  *
- * For details, see the Prototype web site: http://prototype.conio.net/
+ *  For details, see the Prototype web site: http://prototype.conio.net/
  *
 /*--------------------------------------------------------------------------*/
 
@@ -11,117 +11,117 @@
 //note: this is a stripped down version of prototype, to be used with moo.fx by mad4milk (http://moofx.mad4milk.net).
 
 var Class = {
- create: function() {
+  create: function() {
 	return function() {
-	 this.initialize.apply(this, arguments);
+	  this.initialize.apply(this, arguments);
 	}
- }
+  }
 }
 
 Object.extend = function(destination, source) {
- for (property in source) {
+  for (property in source) {
 	destination[property] = source[property];
- }
- return destination;
+  }
+  return destination;
 }
 
 Function.prototype.bind = function(object) {
- var __method = this;
- return function() {
+  var __method = this;
+  return function() {
 	return __method.apply(object, arguments);
- }
+  }
 }
 
 function $() {
- var elements = new Array();
+  var elements = new Array();
 
- for (var i = 0; i < arguments.length; i++) {
+  for (var i = 0; i < arguments.length; i++) {
 	var element = arguments[i];
 	if (typeof element == 'string')
-	 element = document.getElementById(element);
+	  element = document.getElementById(element);
 
 	if (arguments.length == 1)
-	 return element;
+	  return element;
 
 	elements.push(element);
- }
+  }
 
- return elements;
+  return elements;
 }
 
 //-------------------------
 
 document.getElementsByClassName = function(className) {
- var children = document.getElementsByTagName('*') || document.all;
- var elements = new Array();
+  var children = document.getElementsByTagName('*') || document.all;
+  var elements = new Array();
 
- for (var i = 0; i < children.length; i++) {
+  for (var i = 0; i < children.length; i++) {
 	var child = children[i];
 	var classNames = child.className.split(' ');
 	for (var j = 0; j < classNames.length; j++) {
-	 if (classNames[j] == className) {
+	  if (classNames[j] == className) {
 		elements.push(child);
 		break;
-	 }
+	  }
 	}
- }
+  }
 
- return elements;
+  return elements;
 }
 
 //-------------------------
 
 if (!window.Element) {
- var Element = new Object();
+  var Element = new Object();
 }
 
 Object.extend(Element, {
- remove: function(element) {
+  remove: function(element) {
 	element = $(element);
 	element.parentNode.removeChild(element);
- },
+  },
 
- hasClassName: function(element, className) {
+  hasClassName: function(element, className) {
 	element = $(element);
 	if (!element)
-	 return;
+	  return;
 	var a = element.className.split(' ');
 	for (var i = 0; i < a.length; i++) {
-	 if (a[i] == className)
+	  if (a[i] == className)
 		return true;
 	}
 	return false;
- },
+  },
 
- addClassName: function(element, className) {
+  addClassName: function(element, className) {
 	element = $(element);
 	Element.removeClassName(element, className);
 	element.className += ' ' + className;
- },
+  },
 
- removeClassName: function(element, className) {
+  removeClassName: function(element, className) {
 	element = $(element);
 	if (!element)
-	 return;
+	  return;
 	var newClassName = '';
 	var a = element.className.split(' ');
 	for (var i = 0; i < a.length; i++) {
-	 if (a[i] != className) {
+	  if (a[i] != className) {
 		if (i > 0)
-		 newClassName += ' ';
+		  newClassName += ' ';
 		newClassName += a[i];
-	 }
+	  }
 	}
 	element.className = newClassName;
- },
+  },
 
- // removes whitespace-only text node children
- cleanWhitespace: function(element) {
+  // removes whitespace-only text node children
+  cleanWhitespace: function(element) {
 	element = $(element);
 	for (var i = 0; i < element.childNodes.length; i++) {
-	 var node = element.childNodes[i];
-	 if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
+	  var node = element.childNodes[i];
+	  if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
 		Element.remove(node);
 	}
- }
+  }
 });
\ No newline at end of file
diff --git a/user_guide/overview/appflow.html b/user_guide/overview/appflow.html
index 3b1c42e..bcbc43f 100644
--- a/user_guide/overview/appflow.html
+++ b/user_guide/overview/appflow.html
@@ -67,7 +67,7 @@
 <li>The index.php serves as the front controller, initializing the base resources needed to run CodeIgniter.</li>
 <li>The Router examines the HTTP request to determine what should be done with it.</li>
 <li>If a cache file exists, it is sent directly to the browser, bypassing the normal system execution.</li>
-<li>Security. Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.</li>
+<li>Security.  Before the application controller is loaded, the HTTP request and any user submitted data is filtered for security.</li>
 <li>The Controller loads the model, core libraries, helpers, and any other resources needed to process the specific request.</li>
 <li>The finalized View is rendered then sent to the web browser to be seen. If caching is enabled, the view is cached first so
 that on subsequent requests it can be served.</li>
diff --git a/user_guide/overview/at_a_glance.html b/user_guide/overview/at_a_glance.html
index 1175e7f..b6b81d7 100644
--- a/user_guide/overview/at_a_glance.html
+++ b/user_guide/overview/at_a_glance.html
@@ -60,7 +60,7 @@
 
 <h2>CodeIgniter is an Application Framework</h2>
 
-<p>CodeIgniter is a toolkit for people who build web applications using PHP. Its goal is to enable you to develop projects much faster than you could if you were writing code
+<p>CodeIgniter is a toolkit for people who build web applications using PHP.  Its goal is to enable you to develop projects much faster than you could if you were writing code
 from scratch, by providing a rich set of libraries for commonly needed tasks, as well as a simple interface and
 logical structure to access these libraries. CodeIgniter lets you creatively focus on your project by
 minimizing the amount of code needed for a given task.</p>
@@ -70,7 +70,7 @@
 For more information please read the <a href="../license.html">license agreement</a>.</p>
 
 <h2>CodeIgniter is Light Weight</h2>
-<p>Truly light weight. The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources.
+<p>Truly light weight.  The core system requires only a few very small libraries. This is in stark contrast to many frameworks that require significantly more resources.
 Additional libraries are loaded dynamically upon request, based on your needs for a given process, so the base system
 is very lean and quite fast.
 </p>
@@ -84,7 +84,7 @@
 This is particularly good for projects in which designers are working with your template files, as the code these file contain will be minimized. We describe MVC in more detail on its own page.</p>
 
 <h2>CodeIgniter Generates Clean URLs</h2>
-<p>The URLs generated by CodeIgniter are clean and search-engine friendly. Rather than using the standard "query string"
+<p>The URLs generated by CodeIgniter are clean and search-engine friendly.  Rather than using the standard "query string"
 approach to URLs that is synonymous with dynamic systems, CodeIgniter uses a segment-based approach:</p>
 
 <code>example.com/<var>news</var>/<dfn>article</dfn>/<samp>345</samp></code>
@@ -92,7 +92,7 @@
 <p>Note: By default the index.php file is included in the URL but it can be removed using a simple .htaccess file.</p>
 
 <h2>CodeIgniter Packs a Punch</h2>
-<p>CodeIgniter comes with full-range of libraries that enable the most commonly needed web development tasks,
+<p>CodeIgniter comes with  full-range of libraries that enable the most commonly needed web development tasks,
 like accessing a database, sending email, validating form data, maintaining sessions, manipulating images, working with XML-RPC data and
 much more.</p>
 
@@ -104,7 +104,7 @@
 <p>Although CodeIgniter <em>does</em> come with a simple template parser that can be optionally used, it does not force you to use one.
 
 Template engines simply can not match the performance of native PHP, and the syntax that must be learned to use a template
-engine is usually only marginally easier than learning the basics of PHP. Consider this block of PHP code:</p>
+engine is usually only marginally easier than learning the basics of PHP.  Consider this block of PHP code:</p>
 
 <code>&lt;ul><br />
 <br />
@@ -133,7 +133,7 @@
 
 
 <h2>CodeIgniter is Thoroughly Documented</h2>
-<p>Programmers love to code and hate to write documentation. We're no different, of course, but
+<p>Programmers love to code and hate to write documentation.  We're no different, of course, but
 since documentation is <strong>as important</strong> as the code itself,
 we are committed to doing it. Our source code is extremely clean and well commented as well.</p>
 
diff --git a/user_guide/overview/features.html b/user_guide/overview/features.html
index 4209463..e20219e 100644
--- a/user_guide/overview/features.html
+++ b/user_guide/overview/features.html
@@ -59,10 +59,10 @@
 <h1>CodeIgniter Features</h1>
 
 <p>Features in and of themselves are a very poor way to judge an application since they tell you nothing
-about the user experience, or how intuitively or intelligently it is designed. Features
+about the user experience, or how intuitively or intelligently it is designed.  Features
 don't reveal anything about the quality of the code, or the performance, or the attention to detail, or security practices.
 The only way to really judge an app is to try it and get to know the code. <a href="../installation/">Installing</a>
-CodeIgniter is child's play so we encourage you to do just that. In the mean time here's a list of CodeIgniter's main features.</p>
+CodeIgniter is child's play so we encourage you to do just that.  In the mean time here's a list of CodeIgniter's main features.</p>
 
 <ul>
 <li>Model-View-Controller Based System</li>
@@ -73,7 +73,7 @@
 <li>Security and XSS Filtering</li>
 <li>Session Management</li>
 <li>Email Sending Class. Supports Attachments, HTML/Text email, multiple protocols (sendmail, SMTP, and Mail) and more.</li>
-<li>Image Manipulation Library (cropping, resizing, rotating, etc.). Supports GD, ImageMagick, and NetPBM</li>
+<li>Image Manipulation Library (cropping, resizing, rotating, etc.).  Supports GD, ImageMagick, and NetPBM</li>
 <li>File Uploading Class</li>
 <li>FTP Class</li>
 <li>Localization</li>
diff --git a/user_guide/overview/getting_started.html b/user_guide/overview/getting_started.html
index 1683326..f120913 100644
--- a/user_guide/overview/getting_started.html
+++ b/user_guide/overview/getting_started.html
@@ -57,7 +57,7 @@
 
 <h1>Getting Started With CodeIgniter</h1>
 
-<p>Any software application requires some effort to learn. We've done our best to minimize the learning
+<p>Any software application requires some effort to learn.  We've done our best to minimize the learning
 curve while making the process as enjoyable as possible.
 </p>
 
diff --git a/user_guide/overview/goals.html b/user_guide/overview/goals.html
index 7f1f767..754ecaa 100644
--- a/user_guide/overview/goals.html
+++ b/user_guide/overview/goals.html
@@ -67,9 +67,9 @@
 <p>From a technical and architectural standpoint, CodeIgniter was created with the following objectives:</p>
 
 <ul>
-<li><strong>Dynamic Instantiation.</strong> In CodeIgniter, components are loaded and routines executed only when requested, rather than globally. No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default. The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.</li>
-<li><strong>Loose Coupling.</strong> Coupling is the degree to which components of a system rely on each other. The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.</li>
-<li><strong>Component Singularity.</strong> Singularity is the degree to which components have a narrowly focused purpose. In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.</li>
+<li><strong>Dynamic Instantiation.</strong>  In CodeIgniter, components are loaded and routines executed only when requested, rather than globally.  No assumptions are made by the system regarding what may be needed beyond the minimal core resources, so the system is very light-weight by default.  The events, as triggered by the HTTP request, and the controllers and views you design will determine what is invoked.</li>
+<li><strong>Loose Coupling.</strong>  Coupling is the degree to which components of a system rely on each other.  The less components depend on each other the more reusable and flexible the system becomes. Our goal was a very loosely coupled system.</li>
+<li><strong>Component Singularity.</strong>  Singularity is the degree to which components have a narrowly focused purpose.  In CodeIgniter, each class and its functions are highly autonomous in order to allow maximum usefulness.</li>
 </ul>
 
 <p>CodeIgniter is a dynamically instantiated, loosely coupled system with high component singularity. It strives for simplicity, flexibility, and high performance in a small footprint package.</p>
diff --git a/user_guide/overview/mvc.html b/user_guide/overview/mvc.html
index 9eb327a..91cf649 100644
--- a/user_guide/overview/mvc.html
+++ b/user_guide/overview/mvc.html
@@ -60,12 +60,12 @@
 
 <p>CodeIgniter is based on the Model-View-Controller development pattern.
 
-MVC is a software approach that separates application logic from presentation. In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p>
+MVC is a software approach that separates application logic from presentation.  In practice, it permits your web pages to contain minimal scripting since the presentation is separate from the PHP scripting.</p>
 
 <ul>
 <li>The <strong>Model</strong> represents your data structures. Typically your model classes will contain functions that help you
-retrieve, insert, and update information in your database.</li>
-<li>The <strong>View</strong> is the information that is being presented to a user. A View will normally be a web page, but
+retrieve, insert, and update information in your  database.</li>
+<li>The <strong>View</strong> is the information that is being presented to a user.  A View will normally be a web page, but
 in CodeIgniter, a view can also be a page fragment like a header or footer. It can also be an RSS page, or any other type of "page".</li>
 <li>The <strong>Controller</strong> serves as an <em>intermediary</em> between the Model, the View,
 and any other resources needed to process the HTTP request and generate a web page.</li>
diff --git a/user_guide/userguide.css b/user_guide/userguide.css
index b08f4fb..f93ff0d 100644
--- a/user_guide/userguide.css
+++ b/user_guide/userguide.css
@@ -391,7 +391,7 @@
 
 .select {
  background-color: #fff;
- font-size: 11px;
+ font-size:  11px;
  font-weight: normal;
  color: #333;
  padding: 0;
